#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)parent\s*\{\s*type\s*\{[^{}]*subtype\s+TestSubType\s*\{[^{}]*element\s+TestElement\s*\{[^{}]*attributes\s*\{[^{}]*value\s+testvalue[^{}]*\}[^{}]*owner\s+person1"
Local $sString = "parent {" & @CRLF & _
" type {" & @CRLF & _
" subtype TestSubType {" & @CRLF & _
" element TestElement {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname;" & @CRLF & _
" description testdescription;" & @CRLF & _
" count 1234;" & @CRLF & _
" value testvalue;" & @CRLF & _
" }" & @CRLF & _
" owner person1;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType1 {" & @CRLF & _
" element TestElement1 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname1;" & @CRLF & _
" description testdescription1;" & @CRLF & _
" count 1;" & @CRLF & _
" value 1" & @CRLF & _
" }" & @CRLF & _
" owner person2;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType2 {" & @CRLF & _
" element TestElement2 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname2;" & @CRLF & _
" description testdescription2;" & @CRLF & _
" count 2;" & @CRLF & _
" value 2" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType3 {" & @CRLF & _
" element TestElement3 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname3;" & @CRLF & _
" description testdescription3;" & @CRLF & _
" count 3;" & @CRLF & _
" value 3" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType3 {" & @CRLF & _
" element TestElement4 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname4;" & @CRLF & _
" description testdescription4;" & @CRLF & _
" count 4;" & @CRLF & _
" value 4" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType4 {" & @CRLF & _
" element TestElement5 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname5;" & @CRLF & _
" description testdescription5;" & @CRLF & _
" count 5;" & @CRLF & _
" value 5" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType5 {" & @CRLF & _
" element TestElement6 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname6;" & @CRLF & _
" description testdescription6;" & @CRLF & _
" count 6;" & @CRLF & _
" value 6" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType6 {" & @CRLF & _
" element TestElement7 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname7;" & @CRLF & _
" description testdescription7;" & @CRLF & _
" count 7;" & @CRLF & _
" value 7" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType7 {" & @CRLF & _
" element TestElement8 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname8;" & @CRLF & _
" description testdescription8;" & @CRLF & _
" count 8;" & @CRLF & _
" value 8" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType8 {" & @CRLF & _
" element TestElement9 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname9;" & @CRLF & _
" description testdescription9;" & @CRLF & _
" count 9;" & @CRLF & _
" value 9" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType9 {" & @CRLF & _
" element TestElement10 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname10;" & @CRLF & _
" description testdescription10;" & @CRLF & _
" count 10;" & @CRLF & _
" value 10" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @CRLF & _
" }" & @CRLF & _
" }" & @CRLF & _
" subtype TestSubType10 {" & @CRLF & _
" element TestElement11 {" & @CRLF & _
" attributes {" & @CRLF & _
" name testname11;" & @CRLF & _
" description testdescription11;" & @CRLF & _
" count 11;" & @CRLF & _
" value 11" & @CRLF & _
" }" & @CRLF & _
" owner unknown;" & @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