#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^(?<Monthswith31>31(?<s1>\/|\.|-)(0?[13578]|1[02]|(Jan|Mar|May|Jul|Aug|Oct|Dec))\g<s1>(?<Year>19[0-9][0-9]|200[0-7]))$|^(?<Monthswith29or30>(29|30)(?<s2>\/|\.|-)(0?[1,3-9]|1[0-2]|(Jan|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\g<s2>(?<Year2>19[0-9][0-9]|200[0-7]))$|^(?<Allmonthswith28>(0?[1-9]|1[0-9]|2[0-8])(?<s3>\/|\.|-)(0?[1-9]|1[0-2]|(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\g<s3>(?<Year3>19[0-9][0-9]|200[0-7]))$|^(?<FebLeapYears>29(?<s4>\/|\.|-)(0?2|Feb)\g<s4>(19([02468][048]|[13579][26])|200[04]))$"
Local $sString = "02/Apr/2006" & @CRLF & _
"23/10/1996" & @CRLF & _
"13/10/2000" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"Right Ones" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"28/05/2000" & @CRLF & _
"01/01/2000" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"1/1/2000" & @CRLF & _
"01/Jan/2000" & @CRLF & _
"31/01/" & @CRLF & _
"31/Jan/2000" & @CRLF & _
"31.Jan.2000" & @CRLF & _
"31-Jan-2012" & @CRLF & _
"30/Mar/2000" & @CRLF & _
"29/Apr/2000" & @CRLF & _
"29/10/2000" & @CRLF & _
"29/02/2000" & @CRLF & _
"20/Apr/1983" & @CRLF & _
"28/02/2000" & @CRLF & _
"01/1/2000" & @CRLF & _
"01/Jan/2000" & @CRLF & _
"01/1/01" & @CRLF & _
"01/Jan/01" & @CRLF & _
"29/02/2000" & @CRLF & _
"29/Feb/2000" & @CRLF & _
"01/01/2020 #1st Jan" & @CRLF & _
"07/03/2020 #3 July" & @CRLF & _
"12/2/2020 #2 December " & @CRLF & _
"23/4/2020 #23 April " & @CRLF & _
"" & @CRLF & _
"Wrong Ones" & @CRLF & _
"31/04/2000" & @CRLF & _
"29/Feb/2001" & @CRLF & _
"13/13/2000" & @CRLF & _
"30/Feb/2000" & @CRLF & _
"25/February/2000" & @CRLF & _
"32/01/2000" & @CRLF & _
"32/Jan/2000" & @CRLF & _
""
Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH)
Local $aFullArray[0]
For $i = 0 To UBound($aArray) -1
_ArrayConcatenate($aFullArray, $aArray[$i])
Next
$aArray = $aFullArray
; Present the entire match result
_ArrayDisplay($aArray, "Result")
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm