#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?s)([A-Za-z]{3}\s[0-9]{1,2})\s?([0-9]{2}:[0-9]{2})?(?:\s?-\s?([0-9]{2}:[0-9]{2}))?\s?.*?(?=\n(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\s[0-9]|$)"
Local $sString = "Sun 16" & @CRLF & _
"08:00 -" & @CRLF & _
"16:00" & @CRLF & _
"RTW" & @CRLF & _
"Mon 17" & @CRLF & _
"08:00 - 16:00" & @CRLF & _
"RTW" & @CRLF & _
"Tue 18" & @CRLF & _
"08:00 -16:00" & @CRLF & _
"RTW" & @CRLF & _
"Wed 19" & @CRLF & _
"08:00 -" & @CRLF & _
"16:00" & @CRLF & _
"RTW" & @CRLF & _
"Thu 20" & @CRLF & _
"08:00 - 16:00" & @CRLF & _
"RTW" & @CRLF & _
"Fri 21" & @CRLF & _
"08:00 - 16:00" & @CRLF & _
"RTW" & @CRLF & _
"Sat 22" & @CRLF & _
"OFF" & @CRLF & _
"Sun 23" & @CRLF & _
"OFF" & @CRLF & _
"Mon 24" & @CRLF & _
"OFF" & @CRLF & _
"Tue 25" & @CRLF & _
"04:40 -" & @CRLF & _
"13:07" & @CRLF & _
"5180" & @CRLF & _
"KM+" & @CRLF & _
"Wed" & @CRLF & _
"26" & @CRLF & _
"04:11" & @CRLF & _
"-" & @CRLF & _
"12:22" & @CRLF & _
"5178" & @CRLF & _
"Thu 27" & @CRLF & _
"10:00 - 18:00" & @CRLF & _
"Work.Group" & @CRLF & _
"Scheduling &" & @CRLF & _
"Rostering 1300-" & @CRLF & _
"1500 @Burwood..." & @CRLF & _
"Fri 28" & @CRLF & _
"OFF" & @CRLF & _
"Sat 29" & @CRLF & _
"NTA"
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