#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^([A-Z]{2}[ \-]?[0-9]{2})(?=(?:[ \-]?[A-Z0-9]){9,30}$)((?:[ \-]?[A-Z0-9]{3,5}){2,7})([ \-]?[A-Z0-9]{1,3})?$"
Local $sString = "XX00 1234 5678 9012 3456 7890 1234 5678 90" & @CRLF & _
"YY00123456789012345678901234567890" & @CRLF & _
"----" & @CRLF & _
"AL28 BBB SSSSK CCCC CCCC CCCC CCCC" & @CRLF & _
"AD24-BBBB-SSSS-CCCC-CCCC-CCCC" & @CRLF & _
"BE16 BBBC CCCC CCKK" & @CRLF & _
"BA20 BBBS SSCC CCCC CCKK" & @CRLF & _
"BG22-BBBB-SSSS-DDCC-CCCC-CC" & @CRLF & _
"CY28 BBBS SSSS CCCC CCCC CCCC CCCC" & @CRLF & _
"DK18 BBBB CCCC CCCC CC" & @CRLF & _
"DE22 BBBB BBBB CCCC CCCC CC" & @CRLF & _
"EE20 BBSS CCCC CCCC CCCK" & @CRLF & _
"FO18 CCCC CCCC CCCC CC" & @CRLF & _
"FI18 BBBB BBCC CCCC CK" & @CRLF & _
"FR27 BBBB BSSS SSCC CCCC CCCC CKK" & @CRLF & _
"GE22 BBCC CCCC CCCC CCCC CC" & @CRLF & _
"GI23 BBBB CCCC CCCC CCCC CCC" & @CRLF & _
"GR27 BBBS SSSC CCCC CCCC CCCC CCC" & @CRLF & _
"GL18 BBBB CCCC CCCC CC" & @CRLF & _
"HU28 BBBS SSSK CCCC CCCC CCCC CCCK" & @CRLF & _
"IE22 BBBB SSSS SSCC CCCC CC" & @CRLF & _
"IS26 BBBB TTCC CCCC XXXX XXXX XX" & @CRLF & _
"IL23 BBB SSS CCCCCCCCCCCCC" & @CRLF & _
"IT27 KBBB BBSS SSSC CCCC CCCC CCC" & @CRLF & _
"JO27 BBBB CCCC CCCC CCCC CCCC CCCC CC" & @CRLF & _
"HR21 BBBB BBBC CCCC CCCC C" & @CRLF & _
"LV21 BBBB CCCC CCCC CCCC C" & @CRLF & _
"LB28 BBBB CCCC CCCC CCCC CCCC CCCC CC" & @CRLF & _
"LI21 BBBB BCCC CCCC CCCC C" & @CRLF & _
"LT20 BBBB BCCC CCCC CCCC" & @CRLF & _
"LU20 BBBC CCCC CCCC CCCC" & @CRLF & _
"MK19 BBBC CCCC CCCC CKK" & @CRLF & _
"MT31 BBBB SSSS SCCC CCCC CCCC CCCC CCC" & @CRLF & _
"MU30 BBBB BBSS CCCC CCCC CCCC RRRD DD" & @CRLF & _
"MC27 BBBB BSSS SSCC CCCC CCCC CKK" & @CRLF & _
"ME22 BBBC CCCC CCCC CCCC KK" & @CRLF & _
"NL18 BBBB CCCC CCCC CK" & @CRLF & _
"NO15 BBBB CCCC CCK" & @CRLF & _
"AT20 BBBB BCCC CCCC CCCC" & @CRLF & _
"PL28 BBBS SSSK CCCC CCCC CCCC CCCC" & @CRLF & _
"PT25 BBBB SSSS CCCC CCCC CCCK K" & @CRLF & _
"RO24 BBBB CCCC CCCC CCCC CCCC" & @CRLF & _
"SM27 KBBB BBSS SSSX XXXX XXXX XXX" & @CRLF & _
"SA24 BBCC CCCC CCCC CCCC CCCC" & @CRLF & _
"RS22 BBBC CCCC CCCC CCCC KK" & @CRLF & _
"SK24 BBBB SSSS SSCC CCCC CCCC" & @CRLF & _
"SI19 BBSS SCCC CCCC CKK" & @CRLF & _
"ES24 BBBB SSSS KKCC CCCC CCCC" & @CRLF & _
"CZ24 BBBB SSSS SSCC CCCC CCCC" & @CRLF & _
"TR26 BBBB BRCC CCCC CCCC CCCC CC" & @CRLF & _
"TN24 BBBB BCCC CCCC CCCC CCCC" & @CRLF & _
"GB22 BBBB SSSS SSCC CCCC CC" & @CRLF & _
"AE23 BBBB SSSS CCCC CCCC CCC" & @CRLF & _
"SE24 BBBB CCCC CCCC CCCC CCCC" & @CRLF & _
"CH21 BBBB BCCC CCCC CCCC C"
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