#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mi)(?<!last calendar) day (of the month )?(next )?(preceding|prior to) (any|an|each) (interest|Bond) payment"
Local $sString = "following day of the month next preceding an interest payment date" & @CRLF & _
"these day of the month next preceding an Interest Payment Date (each a "Record Date")" & @CRLF & _
"last day of the month preceding any Bond Payment" & @CRLF & _
"record date shall be defined as the fifteenth (15 th ) day preceding any interest payment date." & @CRLF & _
"" & @CRLF & _
"The Record Date is the last calendar day of the month preceding each Interest Payment Date, whether or not such day is a Business Day." & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"calendar month immediately preceding an interest payment" & @CRLF & _
"calendar month next preceding each Interest Payment Date." & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"(whether or not a business day) of the calendar month before the interest payment" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"interest payable on the Bonds on any interest payment date means the close of business on the 15th day of the preceding month." & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"month prior to an Interest Payment" & @CRLF & _
"day preceding any interest payment" & @CRLF & _
"immediately preceding an interest payment date"
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