#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(^\|(?<tableSeparator>[\s\-|]+)\|\n)|(^\|\s*(?<tableTopFirst>[^|]+)(?=.*\n\|\s*-))|((?<!^)\|(?<tableTopMiddle>[^|\n]+)(?=\|.*\|\n\| -))|(\|(?<tableTopLast>[^|]+)\|\n(?=\|\s*-))|(^\|\s*(?<tableBottomFirst>[^|]+)(?=.*\n^[^|]))|((?<!^)\|(?<tableBottomMiddle>[^|\n]+)(?=\|.*\|\n[^|]))|(\|\s*(?<tableBottomLast>[^|]+)\|\n(?!\|))|(^\|\s*(?<tableMiddleFirst>[^|]+)(?=\|))|(\|\s*(?<tableMiddleLast>[^|]+)\|\n)|(\|\s*(?<tableMiddleMiddle>[^|]+))|!?(\[(?<text>[^(]+)]\((?<url>[^")]+))("(?<title>[^"]+)"|.*)\)|((?<!-.+\n)- (?<unorderedListFirstItem>.+)\n)|((?<=-.+\n)- (?<unorderedListMiddleItem>.+)\n(?=-))|(- (?<unorderedListLastItem>.+)\n(?!-))|((?<!\d+\..+\n)\d+\. (?<orderedListFirstItem>.+)\n)|((?<=\d+\..+\n)\d+\. (?<orderedListMiddleItem>.+)\n(?=\d+\.))|(\d+\. (?<orderedListLastItem>.+)\n(?!\d+\.))|(\*\*\*(?<boldAndItalic>[^*]*)\*\*\*)|(\*\*(?<bold>[^*]*)\*\*)|(\*(?<italic>[^*]*)\*)|(~~(?<strikethrough>[^~]*)~~)|(`{3}\n(?<multilineCode>[^`]+)`{3}\n)|(`(?<inlineCode>[^`\n]*)`)|(^#{6} (?<h6>.+))|(^#{5} (?<h5>.+))|(^#{4} (?<h4>.+))|(^#{3} (?<h3>.+))|(^#{2} (?<h2>.+))|(^# (?<h1>.+))|(?<horizontalLine>^-{3}\n)|(?<=^\n)> (?<singleLineQuote>.+)\n(?!^>)|((?<!> .+\n)> (?<quoteFirst>.+))|(> (?<quoteLast>.+)(?!.*\n> .+))|(> (?<quoteMiddle>.+))|(?<lineBreak>\n{2})"
Local $sString = "# Table" & @CRLF & _
"| Syntax test | Description | Test | XXX | XXX |" & @CRLF & _
"| ----------- | ----------- | ---- | --- | --- |" & @CRLF & _
"| Header | Title | AAAA | XXX | XXX |" & @CRLF & _
"| Header | Title | AAAA | XXX | XXX |" & @CRLF & _
"| Paragraph | Text | BBBB | XXX | XXX |" & @CRLF & _
"" & @CRLF & _
"## Pretty table" & @CRLF & _
"|Header 1|Header 2|" & @CRLF & _
"|---|---|" & @CRLF & _
"|||" & @CRLF & _
"" & @CRLF & _
"### Lists" & @CRLF & _
"---" & @CRLF & _
"" & @CRLF & _
"- Inline *code* `aaaaz`" & @CRLF & _
"- My **favorite search** engine is ~~not~~ [Duck Duck Go](https://duckduckgo.com "Click me")." & @CRLF & _
"- ~~***Recursive***~~" & @CRLF & _
"- ***~~Recursive reversed~~***" & @CRLF & _
"- Item 4" & @CRLF & _
"" & @CRLF & _
"1. Item" & @CRLF & _
"2. Item" & @CRLF & _
"3. Item" & @CRLF & _
"4. Item" & @CRLF & _
"" & @CRLF & _
"1. c" & @CRLF & _
"1. c" & @CRLF & _
"" & @CRLF & _
"#### Multiline code" & @CRLF & _
"```" & @CRLF & _
"int method() {" & @CRLF & _
" return 2137;" & @CRLF & _
"}" & @CRLF & _
"```" & @CRLF & _
"" & @CRLF & _
"##### Quotes" & @CRLF & _
"> aa" & @CRLF & _
"> aa" & @CRLF & _
"> > bb" & @CRLF & _
"> > bb" & @CRLF & _
"> > > [c](#panes)c" & @CRLF & _
"> > > cc" & @CRLF & _
"> > bb" & @CRLF & _
"> > bb" & @CRLF & _
"> aa" & @CRLF & _
"> aa" & @CRLF & _
"" & @CRLF & _
"> single line" & @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