#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?usi)translate\s*\((?|'((?:[^']*?(?:\\')[^']*?)*)'|"((?:[^"]*?(?:\\"|)[^"]*?)*)")(?:|[, ]*(?:'|")(.*?)(?:"|'))\)"
Local $sString = "translate('hello what\'s wrong');" & @CRLF & _
"translate('hello what\'s wrong');" & @CRLF & _
"translate('hello what\'s wrong');" & @CRLF & _
"translate("hello what's w: )rong");" & @CRLF & _
"translate("hello whats wrong");" & @CRLF & _
"translate('hello what\'s wrong');" & @CRLF & _
"" & @CRLF & _
"translate('hello what\'s wrong', 'namespace');" & @CRLF & _
"translate('hell\'o what\'s wro\'ng', 'namespace');" & @CRLF & _
"translate("hello what\"s \" s\" wrong", 'namespace');" & @CRLF & _
"translate('hell(o) (wh)at\'s wrong', "namespace");" & @CRLF & _
"translate("hello what's wrong", "namespace");" & @CRLF & _
"" & @CRLF & _
"translate ('hello what\'s wrong');" & @CRLF & _
"translate("hel" & @CRLF & _
"lo what's wrong");" & @CRLF & _
"" & @CRLF & _
"translate('hello what\'s wrong', 'namespace');" & @CRLF & _
"translate("hello wh" & @CRLF & _
"at's wrong", 'namespace');" & @CRLF & _
"translate('hello what\'s wrong', "namespace");" & @CRLF & _
"translate("hello what's wrong", "namespace");"
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