#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = " *(?:.*\S.*\n)+\n? *: +(?:.|\n)+?(?:\n{2,}(?=\S)(?! *: +)(?! *(?:\S.*\n)+?\n? *: +)|$)"
Local $sString = "=== Single <dt> and <dd>" & @CRLF & _
"" & @CRLF & _
"GitHub" & @CRLF & _
": a site where over 73 million developers shape the future of software, together" & @CRLF & _
"" & @CRLF & _
"=== Multiple <dt>-<dd> group" & @CRLF & _
"" & @CRLF & _
"Firefox" & @CRLF & _
": a free, open source, cross-platform, graphical web browser developed by the Mozilla Corporation and hundreds of volunteers" & @CRLF & _
"" & @CRLF & _
"MDN" & @CRLF & _
": provides information about Open Web technologies including HTML, CSS, and APIs for both Web sites and progressive web apps" & @CRLF & _
"" & @CRLF & _
"=== Single <dt> with multiple <dd>s" & @CRLF & _
"" & @CRLF & _
"Apple" & @CRLF & _
" : an American multinational technology company that specializes in consumer electronics, computer software and online services." & @CRLF & _
" : an edible fruit produced by an apple tree" & @CRLF & _
"" & @CRLF & _
"=== Multiple <dt>s" & @CRLF & _
"" & @CRLF & _
"Windows" & @CRLF & _
"Microsoft Windows" & @CRLF & _
"Win" & @CRLF & _
": a group of several proprietary graphical operating system families, all of which are developed and marketed by Microsoft" & @CRLF & _
"" & @CRLF & _
"=== separated by blank lines" & @CRLF & _
"" & @CRLF & _
"Solaris" & @CRLF & _
"" & @CRLF & _
": a 1961 science fiction novel by Polish writer Stanisław Lem" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
": a proprietary Unix operating system originally developed by Sun Microsystems" & @CRLF & _
"" & @CRLF & _
"=== <dd>s with inline breaks" & @CRLF & _
"" & @CRLF & _
"Oracle" & @CRLF & _
": an American multinational computer technology" & @CRLF & _
"corporation headquartered in Austin, Texas" & @CRLF & _
"" & @CRLF & _
": the priest or priestess uttering the prediction," & @CRLF & _
"may also refer to the site of the oracle" & @CRLF & _
"" & @CRLF & _
"===" & @CRLF & _
"" & @CRLF & _
"😂" & @CRLF & _
": 😂 face with tears of joy" & @CRLF & _
"" & @CRLF & _
"===" & @CRLF & _
"" & @CRLF & _
"Term 1" & @CRLF & _
"" & @CRLF & _
": This is a definition with two paragraphs. Lorem ipsum " & @CRLF & _
" dolor sit amet, consectetuer adipiscing elit. Aliquam " & @CRLF & _
" hendrerit mi posuere lectus." & @CRLF & _
"" & @CRLF & _
" Vestibulum enim wisi, viverra nec, fringilla in, laoreet" & @CRLF & _
" vitae, risus." & @CRLF & _
"" & @CRLF & _
": Second definition for term 1, also wrapped in a paragraph" & @CRLF & _
" because of the blank line preceding it." & @CRLF & _
"" & @CRLF & _
"Term 2" & @CRLF & _
"" & @CRLF & _
": This definition has a code block, a blockquote and a list." & @CRLF & _
"" & @CRLF & _
" code block." & @CRLF & _
"" & @CRLF & _
" > block quote" & @CRLF & _
" > on two lines." & @CRLF & _
"" & @CRLF & _
" 1. first list item" & @CRLF & _
" 2. second list item"
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