#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mi)^(?=(?:\+|0{2})?(?:(?:[\(\-\)\t\f ]*\d){7,10})?(?:[\t\f ]?\d{2,3})(?:[\-\s]?[ext]{1,3}[\-\t\f ]?\d{1,4})?$)((?:\+|0{2})\d{0,3})?(?:[\-\t\f ]?)(\(0?\d{1,3}\)|\d{0,3})(?:[\-\t\f ]{0,2}\d){3,}(?:[\-\s]?(?:x|ext)[\-\t\f ]?(\d{1,4}))?$"
Local $sString = "123456789" & @CRLF & _
"1234567890123456" & @CRLF & _
"1234567890123" & @CRLF & _
"" & @CRLF & _
"0091234567890" & @CRLF & _
"+9 123-4567890-x321" & @CRLF & _
"+9-123-456-7890" & @CRLF & _
"+9 123 4 5 6-7890x1234" & @CRLF & _
"009-(123)-456-7890 ext4321" & @CRLF & _
"0091234567890x1234" & @CRLF & _
"+9-123-456-7890x12345" & @CRLF & _
"+9-123-456-7890 ext 1234" & @CRLF & _
"0027-123-456-7890" & @CRLF & _
"+27-123-456-7890" & @CRLF & _
"+9(123)4567890" & @CRLF & _
"911" & @CRLF & _
"" & @CRLF & _
" (0)123456789" & @CRLF & _
"+34123456789" & @CRLF & _
"+34 (0)123456789" & @CRLF & _
" +340123456789" & @CRLF & _
"+34 123 456 789" & @CRLF & _
"+34 1 23 45 67 89" & @CRLF & _
"001230123456789" & @CRLF & _
"ext1234" & @CRLF & _
"++34123456789" & @CRLF & _
"00-0-----000" & @CRLF & _
"01 555012345" & @CRLF & _
"001-555012345" & @CRLF & _
"+012345678" & @CRLF & _
"112" & @CRLF & _
"12(34567890" & @CRLF & _
"123)456789012345" & @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