#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?im)^ *((#\d+)|((box|bin)[-. \/\\]?\d+)|(.*p[ \.]? ?(o|0)[-. \/\\]? *-?((box|bin)|b|(#|num)?\d+))|(p(ost)? *(o(ff(ice)?)?)? *((box|bin)|b)? *\d+)|(p *-?\/?(o)? *-?box)|post office (box|bin)|((box|bin)|b) *(number|num|#)? *\d+|(num|number|#) *\d+)"
Local $sString = "Valid:" & @CRLF & _
"P. O. Box : Valid" & @CRLF & _
"P.O.Box : Valid" & @CRLF & _
"Post Box : Valid" & @CRLF & _
"Post Office Box : Valid" & @CRLF & _
"P.O.B : Valid" & @CRLF & _
"P.O.B. : Valid" & @CRLF & _
"POB : Valid" & @CRLF & _
"Post Office Bin : Valid" & @CRLF & _
"100,, P O Box Des Moines : Valid" & @CRLF & _
"P O Box DesMoines1000 : Valid" & @CRLF & _
"P O Box Des Moines 1000 : Valid" & @CRLF & _
"Post Office Box : Valid" & @CRLF & _
"Post Office Box : Valid" & @CRLF & _
"Post Box 123 : Valid" & @CRLF & _
"PO" & @CRLF & _
"P.O." & @CRLF & _
"P.B." & @CRLF & _
"" & @CRLF & _
"Invalid:" & @CRLF & _
"POTTER STREET", "Campbell Dr." & @CRLF & _
"Post Office : Invalid" & @CRLF & _
"Box : Invalid" & @CRLF & _
"Bin : Invalid" & @CRLF & _
"Post : Invalid" & @CRLF & _
"Postal Code : Invalid" & @CRLF & _
"Portsmouth" & @CRLF & _
"Campbell" & @CRLF & _
"Raspberry" & @CRLF & _
"Polonium" & @CRLF & _
"Polar beer." & @CRLF & _
"12 Box" & @CRLF & _
"" & @CRLF & _
"HC73 P.O. Box 217" & @CRLF & _
"P O Box 125" & @CRLF & _
"P. O. Box" & @CRLF & _
"P.O. Box 123" & @CRLF & _
"P.O. Box" & @CRLF & _
"p-o box" & @CRLF & _
"Po Box" & @CRLF & _
"POBOX123" & @CRLF & _
"p box" & @CRLF & _
"Post Box 123" & @CRLF & _
"Post Office Box 123" & @CRLF & _
"Post Office Box" & @CRLF & _
"Box 123" & @CRLF & _
"Box-122" & @CRLF & _
"Box122" & @CRLF & _
"box #123" & @CRLF & _
"box 122" & @CRLF & _
"box 123" & @CRLF & _
"P.O.B 123" & @CRLF & _
"P.O.B. 123" & @CRLF & _
"P.O.B." & @CRLF & _
"POB 123" & @CRLF & _
"POB" & @CRLF & _
"Post 123" & @CRLF & _
"P.O 123" & @CRLF & _
"" & @CRLF & _
"The Postal Road" & @CRLF & _
"Box Hill" & @CRLF & _
"123 Some Street" & @CRLF & _
"Controller's Office" & @CRLF & _
"pollo St." & @CRLF & _
"123 box canyon rd" & @CRLF & _
"777 Post Oak Blvd" & @CRLF & _
"123 box "
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