#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mx)\b # Leading marker" & @CRLF & _
"(?P<byte> # Define a full byte" & @CRLF & _
"25[012345] | # the numers 250 - 255 or" & @CRLF & _
"2[01234](?P<digit>[0123456789]) | # 200 - 249 or" & @CRLF & _
"1(?&digit){2} | # 100 - 199 or" & @CRLF & _
"#0? # Allow leading zero" & @CRLF & _
"[1-9](?&digit) | # 10 - 99 or" & @CRLF & _
"#0{0,2} # Allow leading zeros" & @CRLF & _
"(?&digit) # 0 - 9" & @CRLF & _
") # close one full byte" & @CRLF & _
"(\.(?&byte)){3} # Repeat three more bytes." & @CRLF & _
"\b # Trailing marker"
Local $sString = "0.0.0.0 00.00.00.00 000.000.000.000" & @CRLF & _
"1.2.3.4 01.02.03.04 001.002.003.004" & @CRLF & _
"11.22.3.44 11.22.03.44 011.022.033.044" & @CRLF & _
"23.34.34.5 23.34.34.05 123.234.034.005" & @CRLF & _
"1.1.192.168 01.01.192.168 001.001.192.168" & @CRLF & _
"text 123.234.34.123 more text" & @CRLF & _
"text123.234.34.123more text" & @CRLF & _
"1.2.3.255" & @CRLF & _
"1.2.3.256" & @CRLF & _
"255.255.255.255" & @CRLF & _
"256.2.3.4" & @CRLF & _
"1123.234.34.123" & @CRLF & _
"123.234.34.1235" & @CRLF & _
".123.234.34.123" & @CRLF & _
"123.234.34.123." & @CRLF & _
"not 1.1.168.192 in 1.1.168.192.in-addr.arpa." & @CRLF & _
"not 1.14.2.90 in xserver-common_1.14.2.901-2_all.deb" & @CRLF & _
"1.2.3.4"
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