#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mi)^(([A-Z]{1,2}\d[A-Z\d]?|ASCN|STHL|TDCU|BBND|[BFS]IQQ|PCRN|TKCA) ?\d[A-Z]{2}|BFPO ?\d{1,4}|(KY\d|MSR|VG|AI)[ -]?\d{4}|[A-Z]{2} ?\d{2}|GE ?CX|GIR ?0A{2}|SAN ?TA1)$"
Local $sString = "AI-1111" & @CRLF & _
"ASCN 1ZZ" & @CRLF & _
"STHL 1ZZ" & @CRLF & _
"TDCU 1ZZ" & @CRLF & _
"BBND 1ZZ" & @CRLF & _
"BIQQ 1ZZ" & @CRLF & _
"FIQQ 1ZZ" & @CRLF & _
"GX11 1ZZ" & @CRLF & _
"PCRN 1ZZ" & @CRLF & _
"SIQQ 1ZZ" & @CRLF & _
"TKCA 1ZZ" & @CRLF & _
"BFPO 11" & @CRLF & _
"ZZ 11" & @CRLF & _
"GE CX" & @CRLF & _
"KY1-1111" & @CRLF & _
"VG1111" & @CRLF & _
"MSR 1111" & @CRLF & _
"A1A 1AA" & @CRLF & _
"A1 1AA" & @CRLF & _
"A11 1AA" & @CRLF & _
"AA1 1AA" & @CRLF & _
"AA1A 1AA" & @CRLF & _
"AA11 1AA" & @CRLF & _
"A1A1AA" & @CRLF & _
"A11AA" & @CRLF & _
"A111AA" & @CRLF & _
"AA11AA" & @CRLF & _
"AA1A1AA" & @CRLF & _
"AA111AA" & @CRLF & _
"GIR 0AA" & @CRLF & _
"GIR0AA" & @CRLF & _
"BFPO 1" & @CRLF & _
"BFPO 11" & @CRLF & _
"BFPO 111" & @CRLF & _
"BFPO 1111" & @CRLF & _
"SAN TA1"
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