#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?m)^(?=.*g)[fghlotu]{4,}$"
Local $sString = "// SB from 2019-10-05" & @CRLF & _
"// centerLetter: g" & @CRLF & _
"// outerLetters: f,h,l,o,t,u" & @CRLF & _
"" & @CRLF & _
"// wrong letters" & @CRLF & _
"bread" & @CRLF & _
"butter" & @CRLF & _
"bigger" & @CRLF & _
"ogogogx" & @CRLF & _
"xogogog" & @CRLF & _
"" & @CRLF & _
"// too short" & @CRLF & _
"gut" & @CRLF & _
"log" & @CRLF & _
"fgt" & @CRLF & _
"" & @CRLF & _
"// no center letter" & @CRLF & _
"trout" & @CRLF & _
"lotto" & @CRLF & _
"full" & @CRLF & _
"" & @CRLF & _
"// tricky cases that should match (made up words)" & @CRLF & _
"ogogog" & @CRLF & _
"gogog" & @CRLF & _
"ogogo" & @CRLF & _
"oggoggo" & @CRLF & _
"ggogg" & @CRLF & _
"ggoo" & @CRLF & _
"oogg" & @CRLF & _
"" & @CRLF & _
"// actual solutions" & @CRLF & _
"thoughtful" & @CRLF & _
"flog" & @CRLF & _
"fought" & @CRLF & _
"fugu" & @CRLF & _
"ghoul" & @CRLF & _
"glut" & @CRLF & _
"golf" & @CRLF & _
"goof" & @CRLF & _
"googol" & @CRLF & _
"goth" & @CRLF & _
"gout" & @CRLF & _
"guff" & @CRLF & _
"gulf" & @CRLF & _
"gull" & @CRLF & _
"logo" & @CRLF & _
"ought" & @CRLF & _
"outfought" & @CRLF & _
"outgo" & @CRLF & _
"outthought" & @CRLF & _
"though" & @CRLF & _
"thought" & @CRLF & _
"thug" & @CRLF & _
"tough" & @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