#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox
Local $sRegex = "(?mxu)(?:^" & @CRLF & _
" (?:" & @CRLF & _
" \( [^)]* \)" & @CRLF & _
" |" & @CRLF & _
" \p{Lu}+ (?>[ ]\p{Lu}+\b)* " & @CRLF & _
" (?>/\p{Lu}+(?>[ ]\p{Lu}+ \b)* )* " & @CRLF & _
" ) " & @CRLF & _
" [ ]" & @CRLF & _
")?" & @CRLF & _
"" & @CRLF & _
"[^/\n]*+ \K ."
Local $sString = "Dogs/Cats/Mice" & @CRLF & _
"ANIMALS/SPECIES Dogs/Cats/Mice" & @CRLF & _
"(Animals/Species) Dogs/Cats/Mice" & @CRLF & _
"ANIMALS/SPECIES Dogs and Cats/Mice" & @CRLF & _
"BRITISH RECIPES/DESSERT pudding/rum baba/crumble" & @CRLF & _
"RECIPES/BRITISH DESSERT pudding/crumble"
Local $sSubst = " or "
Local $sResult = StringRegExpReplace($sString, $sRegex, $sSubst)
MsgBox($MB_SYSTEMMODAL, "Result", $sResult)
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