#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mi)\border(?:\s*number)?\W*\d+(*SKIP)(*F)|(?<!x)(?=(?:[._ –-]*\d){9})(?!9|66\D*6|00\D*0|(?:\d\D*){3}0\D*0|(?:\d\D*){5}0(?:\D*0){3})\d(?:[._ –-]*\d){4}"
Local $sString = "//won't match if it is preceded with 'X' or 'x'" & @CRLF & _
"x123456789" & @CRLF & _
"X123456789" & @CRLF & _
"x123-456-789" & @CRLF & _
"X123-456-789" & @CRLF & _
"123-456-789" & @CRLF & _
"ordernumber 123-456-789" & @CRLF & _
"order number123-456789" & @CRLF & _
"order number----123-456789" & @CRLF & _
"order number 123456789" & @CRLF & _
"ordernumber-x123456787" & @CRLF & _
"ordernumber-123456787" & @CRLF & _
"ORDERNUMBER-123456789" & @CRLF & _
"ordernumber - 123456789" & @CRLF & _
"ordernumber #123456789" & @CRLF & _
"ordernumber *%&%*123456789" & @CRLF & _
"ordernumber !@#$%^&123456789" & @CRLF & _
"order.number 123456789" & @CRLF & _
"order_number 123456789" & @CRLF & _
"order._.number 123456789" & @CRLF & _
"order...number#123456789" & @CRLF & _
"order 123456789" & @CRLF & _
"order..123456789" & @CRLF & _
"order#123456789" & @CRLF & _
"order_#123456789" & @CRLF & _
"order._.#123456789" & @CRLF & _
"order___123456789" & @CRLF & _
"order#number 123456789" & @CRLF & _
"order......number 123456789" & @CRLF & _
"order.number.123456789" & @CRLF & _
"social security number 123-456-789" & @CRLF & _
"ordernumber !@#$%^&x123456789" & @CRLF & _
"123456789" & @CRLF & _
"#@%#$%#$123456789#$%#$^$#" & @CRLF & _
"123-456789" & @CRLF & _
"123456789" & @CRLF & _
"123456789" & @CRLF & _
"123 45 6789" & @CRLF & _
"123-45-6789" & @CRLF & _
"123-45-6789" & @CRLF & _
"123 – 45 – 6789" & @CRLF & _
"123.45.6789" & @CRLF & _
"123_45_6789" & @CRLF & _
"123 456 789" & @CRLF & _
"123-456-789" & @CRLF & _
"123 – 456 – 789" & @CRLF & _
"123.456.789" & @CRLF & _
"123_456_789" & @CRLF & _
"1234 56 789" & @CRLF & _
"1234-56-789" & @CRLF & _
"1234 – 56 – 789" & @CRLF & _
"1234.56.789" & @CRLF & _
"1234_56_789" & @CRLF & _
"12 345 6789" & @CRLF & _
"12-345-6789" & @CRLF & _
"12 – 345 – 6789" & @CRLF & _
"12.345.6789" & @CRLF & _
"12_345_6789" & @CRLF & _
"" & @CRLF & _
"The number should not be matched at all for the following rules." & @CRLF & _
"" & @CRLF & _
"If the number beginning with the number “9”" & @CRLF & _
"912345678" & @CRLF & _
"912000000" & @CRLF & _
"" & @CRLF & _
"If the number “666” in positions 1 – 3." & @CRLF & _
"666000000" & @CRLF & _
"666450000" & @CRLF & _
"666129876" & @CRLF & _
"" & @CRLF & _
"If the number “000” in positions 1 – 3." & @CRLF & _
"000000000" & @CRLF & _
"000450000" & @CRLF & _
"000120000" & @CRLF & _
"" & @CRLF & _
"If the number “00” in positions 4 – 5." & @CRLF & _
"123006789" & @CRLF & _
"876001234" & @CRLF & _
"765003456" & @CRLF & _
"" & @CRLF & _
"if the number “0000” in positions 6 – 9" & @CRLF & _
"123450000" & @CRLF & _
"123000000" & @CRLF & _
"876000000" & @CRLF & _
"" & @CRLF & _
"x123456789" & @CRLF & _
"X123456789" & @CRLF & _
"x123-456-789" & @CRLF & _
"X123-456-789" & @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