#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?xJm)# SETTINGS" & @CRLF & _
" (?<ANCHORED>){1}" & @CRLF & _
" (?<NO_SIGN_DUP>){1}" & @CRLF & _
" (?<PYTHON_POW>){1}" & @CRLF & _
" (?<COMMENTS>){0}" & @CRLF & _
"" & @CRLF & _
"(?(ANCHORED)^(?&s)*)" & @CRLF & _
"(?(DEFINE)" & @CRLF & _
" (?<s>(?(COMMENTS)(?:\s+|\/\*[\s\S]*?\*\/|\/\/.*|\#.*)|\s+))" & @CRLF & _
" (?<sign>(?(NO_SIGN_DUP)(?<=(?<_>[\s\S]))(?!(?P=_)))[-+])" & @CRLF & _
" (?<base>\d+(?:\.\d*)?|\d*\.\d+)" & @CRLF & _
" (?<exp>(?:[eE][+-]?\d+))" & @CRLF & _
" (?<num>(?&sign)?(?&base)(?&exp)?(?!\w))" & @CRLF & _
" (?<bracketed>\((?&s)*(?&expr)(?&s)*\))" & @CRLF & _
" (?<atom>(?&num)|(?&bracketed))" & @CRLF & _
" (?<pow>(?&atom)(?:(?&s)*(?(PYTHON_POW)(?:\^|\*\*)|\^)(?&s)*(?&pow))*)" & @CRLF & _
" (?<mul>(?&pow)(?:(?&s)*[*\/](?&s)*(?&mul))*)" & @CRLF & _
" (?<add>(?&mul)(?:(?&s)*[+-](?&s)*(?&add))*)" & @CRLF & _
" (?<expr>(?&add))" & @CRLF & _
")" & @CRLF & _
"(?&expr)" & @CRLF & _
"(?(ANCHORED)(?&s)*$)"
Local $sString = "0" & @CRLF & _
"::" & @CRLF & _
"1" & @CRLF & _
"::" & @CRLF & _
"+1" & @CRLF & _
"::" & @CRLF & _
"-1" & @CRLF & _
"::" & @CRLF & _
"1.e-1" & @CRLF & _
"::" & @CRLF & _
"1e1" & @CRLF & _
"::" & @CRLF & _
".1e+1" & @CRLF & _
"::" & @CRLF & _
"-6*((2**(2+4))/3)" & @CRLF & _
"::" & @CRLF & _
"0*0" & @CRLF & _
"::" & @CRLF & _
"0+0" & @CRLF & _
"::" & @CRLF & _
"0/0" & @CRLF & _
"::" & @CRLF & _
"0^0" & @CRLF & _
"::" & @CRLF & _
"0**0" & @CRLF & _
"::" & @CRLF & _
"0-0" & @CRLF & _
"::" & @CRLF & _
"5 - -2" & @CRLF & _
"::" & @CRLF & _
"5- -2" & @CRLF & _
"::" & @CRLF & _
"5+-2" & @CRLF & _
"::" & @CRLF & _
".1" & @CRLF & _
"::" & @CRLF & _
"1." & @CRLF & _
"::" & @CRLF & _
"1.1" & @CRLF & _
"::" & @CRLF & _
" -2" & @CRLF & _
"::" & @CRLF & _
"5 * (2 + 5 /* comment */ // )" & @CRLF & _
" - 1)" & @CRLF & _
"" & @CRLF & _
"INVALID: // Separated by :: to prevent parsing multiple examples" & @CRLF & _
"." & @CRLF & _
"::" & @CRLF & _
"1e" & @CRLF & _
"::" & @CRLF & _
"1e+" & @CRLF & _
"::" & @CRLF & _
"1e-" & @CRLF & _
"::" & @CRLF & _
"e2" & @CRLF & _
"::" & @CRLF & _
"+" & @CRLF & _
"::" & @CRLF & _
"-" & @CRLF & _
"::" & @CRLF & _
"5 --2" & @CRLF & _
"" & @CRLF & _
""
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