#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)U{2,3}D{2,3}(?!D)|D{2,3}U{2,3}(?!U)"
Local $sString = "Good UUDDDUUU" & @CRLF & _
"Bad UDUDUDUU" & @CRLF & _
"Bad DUDUDDDU" & @CRLF & _
"Bad UDDUDUDU" & @CRLF & _
"Bad UDUUUDDD" & @CRLF & _
"Bad DDUDDUDD" & @CRLF & _
"Good UUDDUUUU" & @CRLF & _
"Bad UUUUDUUD" & @CRLF & _
"Bad DUUDUDUD" & @CRLF & _
"Good UDDUUUDU" & @CRLF & _
"Bad DDDDUDDD" & @CRLF & _
"Bad DUUUUDDU" & @CRLF & _
"Bad UUUUUUUD" & @CRLF & _
"Good DUUDDDUD" & @CRLF & _
"Bad DDDDUUUU" & @CRLF & _
"Good DDDUUDUU" & @CRLF & _
"Bad UDUDDUUD" & @CRLF & _
"Bad DDDDDDDD" & @CRLF & _
"Good DUUUDDDU" & @CRLF & _
"Bad DDDDDUUU" & @CRLF & _
"Bad DDUUUUUD" & @CRLF & _
"Bad UDUUDUDU" & @CRLF & _
"Bad DDDUDDUU" & @CRLF & _
"Bad UDUDUUUD" & @CRLF & _
"Bad DUDUUUDU" & @CRLF & _
"Good DDUUDUUD" & @CRLF & _
"Bad UDUUUUDU" & @CRLF & _
"Bad DDUDUDDD" & @CRLF & _
"Bad DUDUDUDU" & @CRLF & _
"Bad UDDUDDDU" & @CRLF & _
"Bad DDUDDDDD" & @CRLF & _
"Bad DUUDUUUD" & @CRLF & _
"Good UDDUUDDU" & @CRLF & _
"Bad DUUUUUDU" & @CRLF & _
"Good DUUDDUUD" & @CRLF & _
"Bad DDDDUDUU" & @CRLF & _
"Bad UDUDDDUD" & @CRLF & _
"Bad DUUUDUDU" & @CRLF & _
"Bad DDDDDDUU" & @CRLF & _
"Good DDUUUDUD" & @CRLF & _
"Bad UDUUDDDU" & @CRLF & _
"Bad UDUDUDUD" & @CRLF & _
"Good DDUUDDUD" & @CRLF & _
"Bad UDUUUDDU" & @CRLF & _
"Bad DUDDUDDU" & @CRLF & _
"Bad UUDDDDUD" & @CRLF & _
"Bad DUDUUDUD" & @CRLF & _
"Bad DUDDDDDU" & @CRLF & _
"Good UUDDUDUD" & @CRLF & _
"Bad UUUUDDUU" & @CRLF & _
"Bad UDDDDUDU" & @CRLF & _
"Bad DUDUDDUD" & @CRLF & _
"Bad UUUUUDUU" & @CRLF & _
"Bad UDDUDUUD" & @CRLF & _
"Good UDDDUUDU" & @CRLF & _
"Bad DUUDUDDU" & @CRLF & _
"Bad UDDUUUUD" & @CRLF & _
"Bad UUDUDDDD" & @CRLF & _
"Bad DUUDDDDU" & @CRLF & _
"Bad UDUDDUDU" & @CRLF & _
"Bad UUDUUDDD" & @CRLF & _
"Bad DUDDUUDU" & @CRLF & _
"Good UUDDDUUD" & @CRLF & _
"Bad UDUDUUDU" & @CRLF & _
"Bad DUDUUUUD" & @CRLF & _
"Good UUUDDDUU" & @CRLF & _
"Bad DUDDDUDU" & @CRLF & _
"Good UUDDUUUD" & @CRLF & _
"Bad UUUUDUUU" & @CRLF & _
"Bad UDDDDDDU" & @CRLF & _
"Bad UUUUDDDD" & @CRLF & _
"Bad DUDUDUUD" & @CRLF & _
"Bad UUUDUDUU" & @CRLF & _
"Bad UUUUUUUU" & @CRLF & _
"Bad UDDUDDUD" & @CRLF & _
"Bad DDDDUUUD" & @CRLF & _
"Bad UDDDUDDU" & @CRLF & _
"Bad UUUUUDDD" & @CRLF & _
"Bad DUUDUUDU" & @CRLF & _
"Good UDDUUDUD" & @CRLF & _
"Bad DDDDDUUD" & @CRLF & _
"Bad DDUUUUUU" & @CRLF & _
"Bad UUDUDUDD" & @CRLF & _
"Bad DUDDUDDD" & @CRLF & _
"Good DUUDDUDU" & @CRLF & _
"Bad UDUDDDDU" & @CRLF & _
"Good DDUUDUUU" & @CRLF & _
"Bad DUDUUDUU" & @CRLF & _
"Bad UUDUUUDD" & @CRLF & _
"Bad DUDDDDDD" & @CRLF & _
"Bad UDDDDUDD" & @CRLF & _
"Bad UDUDUDDU" & @CRLF & _
"Bad DUDUDDUU" & @CRLF & _
"Good UUUDDUUU" & @CRLF & _
"Good DDDUUUDD" & @CRLF & _
"Bad UDDUDUUU" & @CRLF & _
"Good UDDDUUDD" & @CRLF & _
"Bad UUUUDUDD" & @CRLF & _
"Bad DUUDUDDD" & @CRLF & _
"Bad UUUDUUUU" & @CRLF & _
"Bad DDDUDUDD" & @CRLF & _
"Bad UDDUUUUU" & @CRLF & _
"Bad DDDDUDUD" & @CRLF & _
"Bad UUDUDDDU" & @CRLF & _
"Bad UUUUUUDD" & @CRLF & _
"Bad DUUDDDDD" & @CRLF & _
"Bad DDUDUUUU" & @CRLF & _
"Bad UDUDDUDD" & @CRLF & _
"Bad DDDDDDUD" & @CRLF & _
"Bad UUDUUDDU" & @CRLF & _
"Good DDUUUDUU" & @CRLF & _
"Bad DUDDUUDD" & @CRLF & _
"Bad DDUUUUDD" & @CRLF & _
"Bad DDUDDUUU" & @CRLF & _
"Bad DUDDUDUU" & @CRLF & _
"Bad UDUDUUDD" & @CRLF & _
"Good DDUUDDUU" & @CRLF & _
"Bad DUDUUUUU" & @CRLF & _
"Good UUUDDDUD" & @CRLF & _
"Bad DUDDDUDD" & @CRLF & _
"Good DDUUDUDD" & @CRLF & _
"Bad UDDDDDDD" & @CRLF & _
"Bad DUDDDDUU" & @CRLF & _
"Bad DUUUUDUD" & @CRLF & _
"Bad UUUUDDDU" & @CRLF & _
"Bad DUDUDUUU" & @CRLF & _
"Bad UUUDUDUD" & @CRLF & _
"Bad UDDDDUUU" & @CRLF & _
"Good DDDUUDDD" & @CRLF & _
"Bad UDDUDDUU" & @CRLF & _
"Bad UDDDUDDD" & @CRLF & _
"Good DUUUDDUD" & @CRLF & _
"Bad UUUUUDDU" & @CRLF & _
"Bad DUUDUUDD" & @CRLF & _
"Bad UDDDUUUU" & @CRLF & _
"Bad UDUUDUUD" & @CRLF & _
"Bad DDDUDDDD" & @CRLF & _
"Good UDDUUDUU" & @CRLF & _
"Bad UUDUDUDU" & @CRLF & _
"Good DUUDDUDD" & @CRLF & _
"Bad UDUUUUUD" & @CRLF & _
"Bad DDUDUDUU" & @CRLF & _
"Bad UDUDDDDD" & @CRLF & _
"Bad UUDUUUDU" & @CRLF & _
"Good DDUUUDDD" & @CRLF & _
"Bad DDUDDDUU" & @CRLF & _
"Bad DUDDUUUU" & @CRLF & _
"Bad UDUDUDDD" & @CRLF & _
"Good UUUDDUUD" & @CRLF & _
"Good DDDUUUDU" & @CRLF & _
"Good DDUUDDDD" & @CRLF & _
"Bad DUDDDUUU" & @CRLF & _
"Bad DUUUUUUD" & @CRLF & _
"Bad UUUUDUDU" & @CRLF & _
"Bad UUUDUUUD" & @CRLF & _
"Bad DDDUDUDU" & @CRLF & _
"Bad UDDDDDUU" & @CRLF & _
"Bad DUUUDUUD" & @CRLF & _
"Bad UUUUUUDU" & @CRLF & _
"Bad UDDDUDUU" & @CRLF & _
"Bad UDUUDDUD" & @CRLF & _
"Bad DDUDUUUD" & @CRLF & _
"Bad DDUUUUDU" & @CRLF & _
"Bad UDUUUDUD" & @CRLF & _
"Bad DDUDDUUD" & @CRLF & _
"Good DDUUDUDU" & @CRLF & _
"Good DDDUUDDU" & @CRLF & _
"Bad DDDUDDDU" & @CRLF & _
"Bad DDUDUDUD" & @CRLF & _
"Good DDUUUDDU" & @CRLF & _
"Bad DDUDDDUD" & @CRLF & _
"Good DDUUDDDU" & @CRLF & _
"Bad UUDDDDDU" & @CRLF & _
"Bad UUDUDDUD" & @CRLF & _
"Good UUDDUDDU" & @CRLF & _
"Bad UUDUUDUD" & @CRLF & _
"Bad UUUDDDDU" & @CRLF & _
"Bad UUUDUDDU" & @CRLF & _
"Good UUDDDUDU" & @CRLF & _
"Bad UUDUDUUD" & @CRLF & _
"Bad DUDDUDUD" & @CRLF & _
"Good UUDDUUDU" & @CRLF & _
"Bad UUDUUUUD" & @CRLF & _
"Bad DUDDDDUD" & @CRLF & _
"Bad DUUUUDUU" & @CRLF & _
"Bad DDDDUUDU" & @CRLF & _
"Bad UDDDDUUD" & @CRLF & _
"Good UUUDDUDU" & @CRLF & _
"Good DUUUDDUU" & @CRLF & _
"Bad DDDUUUUD" & @CRLF & _
"Bad DDDDDUDU" & @CRLF & _
"Good UDDDUUUD" & @CRLF & _
"Bad UDUUDUUU" & @CRLF & _
"Bad UUDDDDDD" & @CRLF & _
"Bad UUUDUUDU" & @CRLF & _
"Bad DDDUDUUD" & @CRLF & _
"Bad DUDUUDDD" & @CRLF & _
"Bad UUDUDDUU" & @CRLF & _
"Bad UDUUUUUU" & @CRLF & _
"Good UUDDUDDD" & @CRLF & _
"Bad DDUDUUDU" & @CRLF & _
"Bad DUDUDDDD" & @CRLF & _
"Bad UUDUUDUU" & @CRLF & _
"Bad DUDDUUUD" & @CRLF & _
"Bad UDDUDUDD" & @CRLF & _
"Bad DDUDDUDU" & @CRLF & _
"Bad DUUDUDUU" & @CRLF & _
"Bad UUUDDDDD" & @CRLF & _
"Bad DUDDDUUD" & @CRLF & _
"Bad DUUUUUUU" & @CRLF & _
"Good UDDUUUDD" & @CRLF & _
"Bad DDDDUDDU" & @CRLF & _
"Bad UDDDDDUD" & @CRLF & _
"Bad DUUUUDDD" & @CRLF & _
"Good DUUDDDUU" & @CRLF & _
"Bad UUUDUDDD" & @CRLF & _
"Bad DUUUDUUU" & @CRLF & _
"Good DDDUUDUD" & @CRLF & _
"Bad UDUDDUUU" & @CRLF & _
"Bad DDDDDDDU" & @CRLF & _
"Bad UDDDUDUD" & @CRLF & _
"Bad UDUUDDUU" & @CRLF & _
"Good UUDDDUDD" & @CRLF & _
"Bad DUUUDDDD" & @CRLF & _
"Bad UDUUDUDD" & @CRLF & _
"Bad DDDUDDUD" & @CRLF & _
"Bad UUDDDDUU" & @CRLF & _
"Bad UDUDUUUU" & @CRLF & _
"Bad DUDUUUDD" & @CRLF & _
"Bad UUDUDUUU" & @CRLF & _
"Bad UDUUUDUU" & @CRLF & _
"Good UUDDUUDD" & @CRLF & _
"Bad UDUUUUDD" & @CRLF & _
"Good UUDDUDUU" & @CRLF & _
"Bad DDUDUDDU" & @CRLF & _
"Bad UUUUDDUD" & @CRLF & _
"Bad DUDUDUDD" & @CRLF & _
"Bad UUDUUUUU" & @CRLF & _
"Bad DDDDUUDD" & @CRLF & _
"Bad UDDUDDDD" & @CRLF & _
"Bad DDUDDDDU" & @CRLF & _
"Bad UUUUUDUD" & @CRLF & _
"Bad DUUDUUUU" & @CRLF & _
"Good UUUDDUDD" & @CRLF & _
"Bad DDDUUUUU" & @CRLF & _
"Bad DDDDDUDD" & @CRLF & _
"Good UDDUUDDD" & @CRLF & _
"Bad DUUUUUDD" & @CRLF & _
"Good DUUDDUUU" & @CRLF & _
"Bad UUUDUUDD" & @CRLF & _
"Bad DDDUDUUU" & @CRLF & _
"Bad UDUDDDUU" & @CRLF & _
"Bad DUDUUDDU" & @CRLF & _
"Bad DUUUDUDD" & @CRLF & _
"Bad UDUUDDDD" & @CRLF & _
"Bad DDUDUUDD"
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