#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(?m)^(\d\.?[\d.]*? ?[ \-,:\w]+) ?\r?$"
Local $sString = "5.2 Marking this is a heading" & @CRLF & _
"All relevant information, as detailed in 5.1, which is to be marked on the equipment, shall be" & @CRLF & _
"specified in the relevant product standard." & @CRLF & _
"Markings shall be indelible and easily legible." & @CRLF & _
"Marking of the manufacturer's name or trademark and type designation or serial number is" & @CRLF & _
"mandatory on the equipment and preferably on the nameplate, if any, in order to permit the" & @CRLF & _
"----------------------------------------------------------------------------------" & @CRLF & _
"MARKING this is a heading" & @CRLF & _
"70 General this is a subheading" & @CRLF & _
"" & @CRLF & _
"70.1 Industrial control equipment shall be plainly marked with: this is a heading" & @CRLF & _
"a) The manufacturer’s name, trademark, or other descriptive marking by which the organization" & @CRLF & _
"responsible for the product may be identified – hereinafter referred to as the manufacturer’s" & @CRLF & _
"name;" & @CRLF & _
"---------------------------------------------------------------------------------" & @CRLF & _
"9 Marking this is a heading" & @CRLF & _
"" & @CRLF & _
"Advisory Note: In Canada, there are two official languages, English and French. Annex C lists" & @CRLF & _
"acceptable French translations of the markings specified in this standard. All markings required" & @CRLF & _
"by this standard may have to be in other languages to conform with the language requirements" & @CRLF & _
"where the product is to be used." & @CRLF & _
"" & @CRLF & _
"9.1 General-purpose marking this is a subheading" & @CRLF & _
"In addition to the marking required for general-purpose equipment, the minimum marking shall" & @CRLF & _
"include the information in 9.2 through 9.11 as applicable. This information shall be readily visible" & @CRLF & _
"" & @CRLF & _
"9.1.3 this is also a subheading" & @CRLF & _
"" & @CRLF & _
"(?m)^(\d+\.\d+\s[ \w,\-]+)\r?$ <--- headings" & @CRLF & _
"" & @CRLF & _
"(?m)^(\d\.[\d.]+ ?[ \w]+) ?\r?$ <--- subheadings" & @CRLF & _
"" & @CRLF & _
"(?m)^(\d\.?[\d.]*? ?[ \-,:\w]+) ?\r?$ <--- master"
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