#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?<=[:=!?&,;|{\[\(\n])[\x09\x20]*(?:\/(?![*+?])(?:(?:[^\n\[\\\/]*+(?:\\\\)*+(?:\\\[|\\\/|\\(?!\[))?(\[)?)+(?(1)([^\n\]\\]*+(\\\\)*+(\\\]|\\(?!\]))?)*((?<!\\)\])?))*[^\n]*?(?<![^\\]\/)(?<![^\\]\\)\/)[gim]{0,3}[\x09\x20]*+(?![^}\]\),;:.\n])"
Local $sString = "// Regular expressions " & @CRLF & _
" r = /([\\/])?([^\\/]*)$/; " & @CRLF & _
" r = /([\\/])?([^\\:/]*)$/; // коммент " & @CRLF & _
" /abc\[def\[^\s[\]/]ghi/g.test(s);// здеÑÑŒ одна пара квадратных Ñкобок! " & @CRLF & _
"r = /\//i; " & @CRLF & _
" r = /[/\*]/img; // коммент " & @CRLF & _
" r = /[a-z]{5}/; " & @CRLF & _
" r = /[a-z]{1,5}/; " & @CRLF & _
" r = /([a-z])+/; " & @CRLF & _
" r = /([a-z]{1,5})+/; " & @CRLF & _
"r = /f([a-z])/; " & @CRLF & _
"r = /f([a-z]+)*/; " & @CRLF & _
"r = /a(b)c(d)/; " & @CRLF & _
"r = /a(b)?c(d)+?/; " & @CRLF & _
"r =(t|/\*/.test(s)); " & @CRLF & _
" r =(t|/\*/); // коммент " & @CRLF & _
"r =/./.test(s) && f(); " & @CRLF & _
"r=/[a-z]/.test(s) && f(); " & @CRLF & _
"var a = [/a\/, \/b/]; " & @CRLF & _
" a=[/a/,/b/]; " & @CRLF & _
"var o = { r: /./, x: 2 }; // коммент " & @CRLF & _
" o={r:/./,x:2}; " & @CRLF & _
"var x = a && /b/.test(s); " & @CRLF & _
" x = a ? /b/ : /c/;// коммент " & @CRLF & _
" x=a?/b/:/c/; " & @CRLF & _
" x=a?/b\\/:/c\/\\/; // коммент " & @CRLF & _
" x=a?/b\\/:/c\/\\/; // коммент " & @CRLF & _
" x = !/a/.test(s); " & @CRLF & _
" x = f(/./i); " & @CRLF & _
" x=1*s.replace(/^[^\d]*(\d+).*$/,'$1')/2; " & @CRLF & _
" /\s\n\s+\/\/\\\\/.test(s)?f(null):f(/\\/); " & @CRLF & _
" /\s\n\s+\/\/\\\\/.test(s)?f(null):f(/\\fghj[\[fghj\]]kl/), /fght/; " & @CRLF & _
" a=s.search(/\s\n\s+\/f\//gi); " & @CRLF & _
" r=/>\.jjj\n<\s\</ " & @CRLF & _
" .exec(s); " & @CRLF & _
" r=/ \n \s/g, " & @CRLF & _
" t=/'/g " & @CRLF & _
" ; " & @CRLF & _
" " & @CRLF & _
"// Not a regular expressions " & @CRLF & _
"var n = 1/2;// коммент " & @CRLF & _
" n = 1/2/3; " & @CRLF & _
" n = 1/2/p; " & @CRLF & _
" n = 1/(2/p); // коммент " & @CRLF & _
" n = 1/this.n/3; " & @CRLF & _
" n = 1/this.f(5+4)/3; " & @CRLF & _
" n = 1/this.f(2/3); " & @CRLF & _
" n = 1/2 + (function() { return 3/4; })(); " & @CRLF & _
" n = 1/2*(this.x/3 + 2); " & @CRLF & _
" n = 1/2*(this.x + 2/3); " & @CRLF & _
" n =p/2,t=3/p; " & @CRLF & _
" n = f(1/2) + f(3/2);"
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