#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mx)(?:(?<=^\n)|(?<=\A)) # Needs 1 or more new lines or start of string" & @CRLF & _
"(?<para_all>" & @CRLF & _
" (?<para_prefix>[ ]{0,3}) # Possibly some leading spaces, but less than a tab worth" & @CRLF & _
" (?<para_content>" & @CRLF & _
" (?:" & @CRLF & _
" (?! # some line content not starting with those exceptions" & @CRLF & _
" [[:blank:]\h]{0,3}" & @CRLF & _
" (?:" & @CRLF & _
" \*{1}[ \t]+ # a list" & @CRLF & _
" |" & @CRLF & _
" (?:\*(?:[ ]?\*){2,}) # a horizontal line" & @CRLF & _
" |" & @CRLF & _
" (?:\-*(?:[ ]?\-){2,}) # a horizontal line" & @CRLF & _
" |" & @CRLF & _
" (?:\_*(?:[ ]?\_){2,}) # a horizontal line" & @CRLF & _
" |" & @CRLF & _
" [>+-=\#]" & @CRLF & _
" |" & @CRLF & _
" \d+\. # ordered list" & @CRLF & _
" |" & @CRLF & _
" \`{3,} # code block" & @CRLF & _
" |" & @CRLF & _
" \~{3,} # code block extended" & @CRLF & _
" )" & @CRLF & _
" )" & @CRLF & _
" )" & @CRLF & _
" .+" & @CRLF & _
" (?!\n(?:[=-]+))" & @CRLF & _
" (?:\n|$)" & @CRLF & _
" )+" & @CRLF & _
")"
Local $sString = "***This is strong and em.***" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"The quick brown fox" & @CRLF & _
"jumps over the lazy dog" & @CRLF & _
"" & @CRLF & _
"Lorem Ipsum" & @CRLF & _
"" & @CRLF & _
"I should match" & @CRLF & _
"- I should NOT match" & @CRLF & _
"" & @CRLF & _
"Le sigh" & @CRLF & _
"" & @CRLF & _
"> Why am I matching?" & @CRLF & _
"1. Nonononono!" & @CRLF & _
"* Aaaagh!" & @CRLF & _
"# Stahhhp!" & @CRLF & _
"" & @CRLF & _
"Hello, World!" & @CRLF & _
"==" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
" ---" & @CRLF & _
"" & @CRLF & _
"***" & @CRLF & _
"" & @CRLF & _
" ***" & @CRLF & _
" " & @CRLF & _
" ***" & @CRLF & _
"" & @CRLF & _
" ***" & @CRLF & _
"" & @CRLF & _
" ***" & @CRLF & _
"" & @CRLF & _
"* * *" & @CRLF & _
"" & @CRLF & _
" * * *" & @CRLF & _
" " & @CRLF & _
" * * *" & @CRLF & _
"" & @CRLF & _
" * * *" & @CRLF & _
"" & @CRLF & _
"___" & @CRLF & _
"" & @CRLF & _
" ___" & @CRLF & _
" " & @CRLF & _
" ___" & @CRLF & _
"" & @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