#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mu)^/foo/bar/+(?:(?:find|count)/*$(*SKIP)(*FAIL)|([^/\r\n\t]+))/*$"
Local $sString = "--------------------must NOT get as id (reseved key words)" & @CRLF & _
"/foo/bar/count" & @CRLF & _
"/foo/bar/find" & @CRLF & _
"--------------------must NOT get as id (not present)" & @CRLF & _
"/foo/bar/" & @CRLF & _
"--------------------must NOT get as id (not present tab test)" & @CRLF & _
"/foo/bar/ " & @CRLF & _
"--------------------must NOT get as id (not present line break test)" & @CRLF & _
"/foo/bar/" & @CRLF & _
"" & @CRLF & _
"--------------------must NOT get as id (not present tab, line break, multiple slashes test)" & @CRLF & _
"/foo/bar// /" & @CRLF & _
" /" & @CRLF & _
"//" & @CRLF & _
"--------------------must get as id" & @CRLF & _
"/foo/bar/1" & @CRLF & _
"/foo/bar/1c" & @CRLF & _
"/foo/bar/c1" & @CRLF & _
"/foo/bar/sku" & @CRLF & _
"/foo/bar/countfind" & @CRLF & _
"/foo/bar/findcount" & @CRLF & _
"/foo/bar/skucount" & @CRLF & _
"/foo/bar/skufind" & @CRLF & _
"/foo/bar/countsku" & @CRLF & _
"/foo/bar/findsku" & @CRLF & _
"/foo/bar/coun" & @CRLF & _
"/foo/bar/fin" & @CRLF & _
"/foo/bar/ount" & @CRLF & _
"/foo/bar/ind" & @CRLF & _
"/foo/bar/skucoun" & @CRLF & _
"/foo/bar/skufin" & @CRLF & _
"/foo/bar/finsku" & @CRLF & _
"/foo/bar/counsku" & @CRLF & _
"--------------------must get as id (unnecessary slash test)" & @CRLF & _
"/foo/bar/1/" & @CRLF & _
"/foo/bar/1c/" & @CRLF & _
"/foo/bar/c1/" & @CRLF & _
"/foo/bar/sku/" & @CRLF & _
"/foo/bar/countfind/" & @CRLF & _
"/foo/bar/findcount/" & @CRLF & _
"/foo/bar/skucount/" & @CRLF & _
"/foo/bar/skufind/" & @CRLF & _
"/foo/bar/countsku/" & @CRLF & _
"/foo/bar/findsku/" & @CRLF & _
"/foo/bar/coun/" & @CRLF & _
"/foo/bar/fin/" & @CRLF & _
"/foo/bar/ount/" & @CRLF & _
"/foo/bar/ind/" & @CRLF & _
"/foo/bar/skucoun/" & @CRLF & _
"/foo/bar/skufin/" & @CRLF & _
"/foo/bar/finsku/" & @CRLF & _
"/foo/bar/counsku/" & @CRLF & _
"--------------------must get as id (unnecessary|invalid slashed test)" & @CRLF & _
"/foo/bar///1///" & @CRLF & _
"/foo/bar///1c///" & @CRLF & _
"/foo/bar///c1///" & @CRLF & _
"/foo/bar///sku///" & @CRLF & _
"/foo/bar///countfind///" & @CRLF & _
"/foo/bar///findcount///" & @CRLF & _
"/foo/bar///skucount///" & @CRLF & _
"/foo/bar///skufind///" & @CRLF & _
"/foo/bar///countsku///" & @CRLF & _
"/foo/bar///findsku///" & @CRLF & _
"/foo/bar///coun///" & @CRLF & _
"/foo/bar///fin///" & @CRLF & _
"/foo/bar///ount///" & @CRLF & _
"/foo/bar///ind///" & @CRLF & _
"/foo/bar///skucoun///" & @CRLF & _
"/foo/bar///skufin///" & @CRLF & _
"/foo/bar///finsku///" & @CRLF & _
"/foo/bar///counsku///"
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