#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?mi)(or|and|(?:(?P<case1namE>)\() ?|) ?\w*(\.)?colz( like| ?\=) ?\?(?:(?P=case1namE) OR)?( and)?"
Local $sString = "technology=? AND tbl.colz = ?(notes.user_id like ? OR votes_count like ? OR notes.id like ?" & @CRLF & _
"OR notes.note like ? OR notes.link like ? OR notes.description like ? " & @CRLF & _
"OR technology like ? OR notes.code_link like ? OR notes.priority like ? OR notes.created_at like ?" & @CRLF & _
"OR notes.updated_at like ? OR notes.technology_id = ? OR notes.user_id like ?)" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"//replace colz with any column name(ex: technology_id) and it should work just as expected" & @CRLF & _
"" & @CRLF & _
"//this expression is to capture and remove "having" columns from query without any error"
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