#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^(?:\+4[39]|004[39]|0|\+\(49\)|\(\+49\))\s?(?=(?:[^\d\n]*\d){10,12}(?!\d))(\()?[19][1567]\d{1,2}(?(1)\))\s?\d(?:[ /-]?\d)+"
Local $sString = "################################### This is allowed ##########################" & @CRLF & _
"+49 15207930698" & @CRLF & _
"+49 15207955279" & @CRLF & _
"+49 1739341284" & @CRLF & _
"+49 1626589266" & @CRLF & _
"" & @CRLF & _
"+49915175461907" & @CRLF & _
"+4915207930698" & @CRLF & _
"+491635556416" & @CRLF & _
"017687400179" & @CRLF & _
"015903900297" & @CRLF & _
"015175355164" & @CRLF & _
"015175354885" & @CRLF & _
"01771789427" & @CRLF & _
"" & @CRLF & _
"+49 915175461907" & @CRLF & _
"+43 915175461907" & @CRLF & _
"+49159039012341" & @CRLF & _
"+43159039012341" & @CRLF & _
"+4915207829969" & @CRLF & _
"+4917697400179" & @CRLF & _
"+4915903904567" & @CRLF & _
"+4915902944599" & @CRLF & _
"+4915902944599" & @CRLF & _
"+4915903904567" & @CRLF & _
"+491739341284" & @CRLF & _
"+431739341284" & @CRLF & _
"" & @CRLF & _
"+49 176 97 456 123" & @CRLF & _
"0176 79 123 17 9" & @CRLF & _
"0176 97 50 01 79" & @CRLF & _
"0176 79 123 179" & @CRLF & _
"0174 80123179" & @CRLF & _
"" & @CRLF & _
"0049 915175461907" & @CRLF & _
"0043 915175461907" & @CRLF & _
"0049159039012341" & @CRLF & _
"0043159039012341" & @CRLF & _
"004915207829969" & @CRLF & _
"" & @CRLF & _
"(+49) 17697123456" & @CRLF & _
"+(49) (1739) 34 12 84" & @CRLF & _
"+49 (1739) 34-12-84" & @CRLF & _
"" & @CRLF & _
"############################################################################################" & @CRLF & _
"################################### This is NOT allowed ####################################" & @CRLF & _
"012345678901234" & @CRLF & _
"123w345345345345" & @CRLF & _
"0123456789101191919" & @CRLF & _
"" & @CRLF & _
"### Too short" & @CRLF & _
"+49 15902" & @CRLF & _
"+49 1590123" & @CRLF & _
"+49 15903567" & @CRLF & _
"+49 177178796" & @CRLF & _
"+49 757130309" & @CRLF & _
"" & @CRLF & _
"+4915902" & @CRLF & _
"+491590123" & @CRLF & _
"+4915903567" & @CRLF & _
"+49177178796" & @CRLF & _
"+49757130309" & @CRLF & _
"" & @CRLF & _
"### Too long" & @CRLF & _
"+49 1590345985412" & @CRLF & _
"+491590345985412" & @CRLF & _
"" & @CRLF & _
"### Not German and not Austrain format" & @CRLF & _
"+12127319863" & @CRLF & _
"+13322014056" & @CRLF & _
"+12126712234" & @CRLF & _
"+427532697710" & @CRLF & _
"+417868150810" & @CRLF & _
"+287533002875" & @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