#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)(^#[0-9A-Fa-f]{6}$)|(^#[0-9A-Fa-f]{3,4}$)|(^#[0-9A-Fa-f]{8}$)"
Local $sString = "// good case" & @CRLF & _
"#000" & @CRLF & _
"#123" & @CRLF & _
"#999" & @CRLF & _
"#AAA" & @CRLF & _
"#aaa" & @CRLF & _
"#abc" & @CRLF & _
"#FFF" & @CRLF & _
"#0000" & @CRLF & _
"#9999" & @CRLF & _
"#AAAA" & @CRLF & _
"#aaaa" & @CRLF & _
"#abcd" & @CRLF & _
"#FFFF" & @CRLF & _
"#ffff" & @CRLF & _
"#000000" & @CRLF & _
"#456789" & @CRLF & _
"#999999" & @CRLF & _
"#AAAAAA" & @CRLF & _
"#aaaaaa" & @CRLF & _
"#abcdef" & @CRLF & _
"#FFFFFF" & @CRLF & _
"#ffffff" & @CRLF & _
"#00000000" & @CRLF & _
"#12345678" & @CRLF & _
"#99999999" & @CRLF & _
"#AAAAAAAA" & @CRLF & _
"#aaaaaaaa" & @CRLF & _
"#abcdefcc" & @CRLF & _
"#FFFFFFFF" & @CRLF & _
"#ffffffff" & @CRLF & _
"#00123456" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"//bad case" & @CRLF & _
"##" & @CRLF & _
"#0" & @CRLF & _
"#1" & @CRLF & _
"#F" & @CRLF & _
"#f" & @CRLF & _
"#12" & @CRLF & _
"#AB" & @CRLF & _
"#ae" & @CRLF & _
"#aaaaa" & @CRLF & _
"#fffff" & @CRLF & _
"#aaaah" & @CRLF & _
"#aaaaaaa" & @CRLF & _
"#0000000" & @CRLF & _
"#ffffhij" & @CRLF & _
"#h000000" & @CRLF & _
"#aaaaaaai" & @CRLF & _
"#000k0123" & @CRLF & _
"#asdfasfa" & @CRLF & _
"" & @CRLF & _
""
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