#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^\[Error: +(?<source_path>(?<file>[^\s\n](?:[^\n:\\]+|\\.)+?)(?::(?<line>\d+)(?::(?<column>\d+)))?) *$"
Local $sString = "/usr/local/lib/node_modules/stylus/bin/stylus:685" & @CRLF & _
" throw err;" & @CRLF & _
" ^" & @CRLF & _
"" & @CRLF & _
"[Error: /Users/user/path/to/stylus/file/invalid.styl:34:5" & @CRLF & _
" 30| ==/UserStyle== */" & @CRLF & _
" 31| " & @CRLF & _
" 32| @-moz-document regexp("https?://(www\\.)?typescriptlang.org/(v2/)?docs.*$")," & @CRLF & _
" 33| regexp("https?://(www\\.)?(staging-)?typescript\\.org/docs/.*$")" & @CRLF & _
" 34| error("compile error")" & @CRLF & _
"-----------^" & @CRLF & _
" 35| " & @CRLF & _
"" & @CRLF & _
"compile error" & @CRLF & _
"] {" & @CRLF & _
" fromStylus: true," & @CRLF & _
" lineno: 34," & @CRLF & _
" column: 5," & @CRLF & _
" filename: '/Users/disk0/git.local/stylus-stylus/static/test/testFiles/invalid.styl'," & @CRLF & _
" stylusStack: ''," & @CRLF & _
" input: '/* ==UserStyle==\n' +" & @CRLF & _
" '@name TypeScript Docs\n' +" & @CRLF & _
" '@description Expands width of code blocks and moves navigation bar fully to the left\n' +" & @CRLF & _
" '@version 0.0.12\n' +" & @CRLF & _
" '@namespace github.com/disk0/stylus/typescript.org/docs\n' +" & @CRLF & _
" '\n' +" & @CRLF & _
" '@author disk0 (github.com/disco0)\n' +" & @CRLF & _
" '@license MIT\n' +" & @CRLF & _
" '\n' +" & @CRLF & _
" '@preprocessor stylus\n' +" & @CRLF & _
" '\n' +" & @CRLF & _
" '@var select CodeFont "Font for code displayed on page." [\n' +" & @CRLF & _
" ' "Iosevka Extended*",\n' +" & @CRLF & _
" ' "Iosevka Expanded",\n' +" & @CRLF & _
" ' "Iosevka Term",\n' +" & @CRLF & _
" ' "Iosevka",\n' +" & @CRLF & _
" '\n' +" & @CRLF & _
" ' "SemanticHaskell",\n' +" & @CRLF & _
" ' "SemanticJavascript",\n' +" & @CRLF & _
" ' "SemanticCode",\n' +" & @CRLF & _
" ' "Hasklig",\n' +" & @CRLF & _
" '\n' +" & @CRLF & _
" ' "PragmataPro Mono Liga",\n' +" & @CRLF & _
" '\n' +" & @CRLF & _
" ' "monospace"\n' +" & @CRLF & _
" ']\n' +" & @CRLF & _
" '@var number CodeFontSize "Size of code in documentation" [ 14, 1, 500, 1, "px" ]\n' +" & @CRLF & _
" '@var number CodeFontWeight "Code font weight" [ 400, 100, 900, 100 ]\n' +" & @CRLF & _
" '@var number DocTextWidth "Width of text content in documentation" [ 1000, 300, 5000, 100, "px" ]\n' +" & @CRLF & _
" '==/UserStyle== */\n' +" & @CRLF & _
" '\n' +" & @CRLF & _
" '@-moz-document regexp("https?://(www\\\\.)?typescriptlang.org/(v2/)?docs.*$"),\n' +" & @CRLF & _
" '\t regexp("https?://(www\\\\.)?(staging-)?typescript\\\\.org/docs/.*$")\n' +" & @CRLF & _
" ' error("compile error")\n'" & @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