#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?i)(?:(AT)\s*(U[0-9]{8}))|(?:(BE)\s*(0?[0-9]{*}))|(?:(CZ)\s*([0-9]{8,10}))|(?:(DE)\s*([0-9]{9}))|(?:(CY)\s*([0-9]{8}[A-Z]))|(?:(DK)\s*([0-9]{8}))|(?:(EE)\s*([0-9]{9}))|(?:(GR)\s*([0-9]{9}))|(?:(ES)\s*([0-9A-Z][0-9]{7}[0-9A-Z]))|(?:(FI)\s*([0-9]{8}))|(?:(FR)\s*([0-9A-Z]{2}[0-9]{9}))|(?:(GB)\s*(([0-9]{9}|[0-9]{12})~(GD|HA)[0-9]{3}))|(?:(HU)\s*([0-9]{8}))|(?:(IE)\s*([0-9][A-Z0-9\\+\\*][0-9]{5}[A-Z]))|(?:(IT)\s*([0-9]{11}))|(?:(LT)\s*(([0-9]{9}|[0-9]{12})))|(?:(LU)\s*([0-9]{8}))|(?:(LV)\s*([0-9]{11}))|(?:(MT)\s*([0-9]{8}))|(?:(NL)\s*([0-9]{9}B[0-9]{2}))|(?:(PL)\s*([0-9]{10}))|(?:(PT)\s*([0-9]{9}))|(?:(SE)\s*([0-9]{12}))|(?:(SI)\s*([0-9]{8}))|(?:(SK)\s*([0-9]{10}))|(?:\D|^)([0-9]{11})(?:\D|$)|(?:(CHE)(-|\s*)([0-9]{3}\.[0-9]{3}\.[0-9]{3}))"
Local $sString = "CHE-459.288.946" & @CRLF & _
"IDI n. CHE-459.288.946" & @CRLF & _
"CHE 459.288.946" & @CRLF & _
"PI:01924110289 CF BGGLNI40S20I008I" & @CRLF & _
"LV12345678901" & @CRLF & _
"12345678901"
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