#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mxJ)^[ ]{0,3} # Leading space up to 3" & @CRLF & _
"(?<link_all>" & @CRLF & _
" (?<!\\)\[ # ID within brackets" & @CRLF & _
" (?!\^) # Make sure, this is not confused with a footnote" & @CRLF & _
" (?<link_id>.+?)" & @CRLF & _
" (?<!\\)\]" & @CRLF & _
" [ \t]* # Possibly with some space before colon" & @CRLF & _
" \:" & @CRLF & _
" [ \t]*\n?[ \t]* # Possibly with some space after the colon, possibly with a new line in between?" & @CRLF & _
" (?:" & @CRLF & _
" <(?<link_url>[^\>]+)> # link within <>" & @CRLF & _
" |" & @CRLF & _
" (?<link_url>\S+) # or link without <>" & @CRLF & _
" )" & @CRLF & _
" (?:" & @CRLF & _
" (?:" & @CRLF & _
" [ \t]+ # Either some space or tabs" & @CRLF & _
" |" & @CRLF & _
" [ \t]*\n[ \t]* # or a new line surrounded by 0 or more spaces or tabs" & @CRLF & _
" )" & @CRLF & _
" (?:" & @CRLF & _
" (?:" & @CRLF & _
" (?<link_title_container>['"]) # Title is surrounded ether by double or single quotes" & @CRLF & _
" (?<link_title>.+?)" & @CRLF & _
" \g{link_title_container} # make the sure enclosing mark balance" & @CRLF & _
" )" & @CRLF & _
" | # or" & @CRLF & _
" \((?<link_title>[^\)]+)\) # by parenthesis" & @CRLF & _
" )" & @CRLF & _
" )?" & @CRLF & _
" [ \t]* # Possibly ending with some trailing spaces or tab" & @CRLF & _
")" & @CRLF & _
"(?:\n+|\Z) # terminated by a new line or end of file"
Local $sString = "[1]: /url/ "Title"" & @CRLF & _
"" & @CRLF & _
"[refid]: /path/to/something (Title)" & @CRLF & _
"" & @CRLF & _
"[^block]:" & @CRLF & _
" Paragraph." & @CRLF & _
"" & @CRLF & _
" * List item" & @CRLF & _
"" & @CRLF & _
" > Blockquote" & @CRLF & _
"" & @CRLF & _
" Code block" & @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