#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mx)<!ELEMENT\s+" & @CRLF & _
"((?'elname'\S+)\s+)" & @CRLF & _
"((?'rank'\d+)\s+)?" & @CRLF & _
"(?'tagOmit'" & @CRLF & _
" (?'start'[-oO])\s+" & @CRLF & _
" (?'end'[-oO])\s+" & @CRLF & _
")?" & @CRLF & _
"(?'content'" & @CRLF & _
" (?'keyword'(ANY|EMPTY|CDATA|RDATA))|" & @CRLF & _
" (?'contentGrp' \(.*\)[*+?]?)" & @CRLF & _
")" & @CRLF & _
"(?'exceptions'" & @CRLF & _
" (\s+\-(?'exclusion'\(.+\)))?" & @CRLF & _
" (\s+\+(?'inclusion'\(.+\)))?" & @CRLF & _
")" & @CRLF & _
"\s*>"
Local $sString = "<!ELEMENT FTNOTE - - ((PARA | PARA-EFF-GROUP | PARA-EFF-CHOICE | TABLE | UN-LIST | NOTE | TABLE-EFF-GROUP | TABLE-EFF-CHOICE)+)" & @CRLF & _
" -(FTNOTE | NOTE | TABLE | GROUND-TEST | CORRECTIVE-ACTION)>" & @CRLF & _
"<!ELEMENT ENTRY - - (WARNING | CAUTION | NOTE | (PARA | UN-LIST | PARA-EFF-GROUP | PARA-EFF-CHOICE)*)" & @CRLF & _
" -(ENTRY | GRAPHIC-COLLECTION)" & @CRLF & _
" +(INFOMARK | FTNOTE-REF)>" & @CRLF & _
"<!ELEMENT COLSPEC - o EMPTY>" & @CRLF & _
"<!ELEMENT TGROUP - - (COLSPEC+, THEAD?, TBODY)>" & @CRLF & _
"" & @CRLF & _
"<!ELEMENT TABLE - - (TITLE?, TGROUP, FTNOTE*)" & @CRLF & _
" -(TABLE | TABLE-NO-TITLE | GROUND-TEST | CORRECTIVE-ACTION)" & @CRLF & _
" +(INFOMARK | INCLUDED-SUBDOC | INCLUDED-SOURCE-DATA | EFF-NONE)>"
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