#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mx)(?<!\d)" & @CRLF & _
" (?:" & @CRLF & _
" (?!0000)[0-9]{4}" & @CRLF & _
" (?P<sep1>[-/.])?" & @CRLF & _
" (?:" & @CRLF & _
" (?:(?(sep1)0?|0)[1-9]|1[0-2]) (?P=sep1) (?:(?(sep1)0?|0)[1-9]|1[0-9]|2[0-8])" & @CRLF & _
" |(?:(?(sep1)0?|0)[13-9]|1[0-2]) (?P=sep1) (?:29|30)" & @CRLF & _
" |(?:(?(sep1)0?|0)[13578]|1[02]) (?P=sep1) (?:31)" & @CRLF & _
" )" & @CRLF & _
" |" & @CRLF & _
" (?:" & @CRLF & _
" [0-9]{2}" & @CRLF & _
" (?:" & @CRLF & _
" 0[48]" & @CRLF & _
" |[2468][048]" & @CRLF & _
" |[13579][26]" & @CRLF & _
" )" & @CRLF & _
" |(?:" & @CRLF & _
" 0[48]" & @CRLF & _
" |[2468][048]" & @CRLF & _
" |[13579][26]" & @CRLF & _
" )00" & @CRLF & _
" )" & @CRLF & _
" (?P<sep2>[-/.]?)" & @CRLF & _
" (?(sep2)0?|0)2 (?P=sep2) (?:29)" & @CRLF & _
" )" & @CRLF & _
"(?!\d)" & @CRLF & _
""
Local $sString = "aaa_20150229_bbb" & @CRLF & _
"aaa_2012-02-29_bbb" & @CRLF & _
"aaa_2000-02-29_bbb" & @CRLF & _
"aaa_20000229_bbb" & @CRLF & _
"2004-2-29" & @CRLF & _
"1696-2-29" & @CRLF & _
"16960229" & @CRLF & _
"" & @CRLF & _
"aaa_1904229_bbb" & @CRLF & _
"aaa_18000229_bbb" & @CRLF & _
"aaa_17000229_bbb" & @CRLF & _
"aaa_16000229_bbb" & @CRLF & _
"2019-3-30" & @CRLF & _
"19960229" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"aaa_20150130_bbb" & @CRLF & _
"aaa_20150131_bbb" & @CRLF & _
"aaa_2015-04-30_bbb" & @CRLF & _
"aaa_20150431_bbb" & @CRLF & _
"2019228" & @CRLF & _
"2019228" & @CRLF & _
"201911"
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