#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mi)^\s*(\w+)(?:\s+(V[0-9A-F]|0x[0-9A-F]+|[0-9]+|I|DELAY|SOUND))?(?:,\s+(V[0-9A-F]|0x[0-9A-F]+|[0-9]+|DELAY))?(?:,\s+([0-9]+|0x[0-9A-F]))?\s*$"
Local $sString = "NOP" & @CRLF & _
"CLEAR" & @CRLF & _
"RETURN" & @CRLF & _
"JUMP 0x123" & @CRLF & _
"CALL 0x123" & @CRLF & _
"IFEQ V3, 42" & @CRLF & _
"IFNE V5, 0x4A" & @CRLF & _
"IFEQ V2, V4" & @CRLF & _
"SET VE, 42" & @CRLF & _
"ADD V7, 56" & @CRLF & _
"SET V4, V6" & @CRLF & _
"OR V9, V0" & @CRLF & _
"AND V4, V6" & @CRLF & _
"XOR V2, V9" & @CRLF & _
"ADD VF, VD" & @CRLF & _
"DEC V8, V3" & @CRLF & _
"RSH V6" & @CRLF & _
"SUB V3, V8" & @CRLF & _
"LSH VB" & @CRLF & _
"IFNE V8, V9" & @CRLF & _
"SET I, 0x200" & @CRLF & _
"JMPO 0x230" & @CRLF & _
"RAND V0, 68" & @CRLF & _
"DRAW V2, V3, 0xF" & @CRLF & _
"IFKEY V9" & @CRLF & _
"IFNKEY V8" & @CRLF & _
"SET V8, DELAY" & @CRLF & _
"WAIT V7" & @CRLF & _
"SET DELAY, VA" & @CRLF & _
"SET SOUND, VB" & @CRLF & _
"ADD I, V0" & @CRLF & _
"SPRITE VD" & @CRLF & _
"BCD 7" & @CRLF & _
"DUMP VF" & @CRLF & _
"LOAD V3"
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