#include <StringConstants.au3> ; to declare the Constants of StringRegExp
#include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate
Local $sRegex = "(?im)^\s*insert(?:\s+into)?\s+(?<TableName>\[.*?\]|[^ (]+)\s*\((?<Columns>.+?)\)"
Local $sString = "insert into [SomeTable]([Run ID]) values (something, something)" & @CRLF & _
"insert [SomeTable]([Run ID]) values (something, something)" & @CRLF & _
" insert into [SomeTable]([Run ID]) values (something, something)" & @CRLF & _
"insert into SomeTable([Run ID]) values (something, something)" & @CRLF & _
"insert SomeTable([Run ID]) values (something, something)" & @CRLF & _
" insert into SomeTable([Run ID]) values (something, something)" & @CRLF & _
"insert into [Some Table]([Run ID]) values (something, something)" & @CRLF & _
"insert [Some Table]([Run ID]) values (something, something)" & @CRLF & _
" insert into [Some Table]([Run ID]) values (something, something)" & @CRLF & _
"insert into [Some Table] ([Run ID]) values (something, something)" & @CRLF & _
"insert [Some Table] ([Run ID]) values (something, something)" & @CRLF & _
" insert into [Some Table] ( [Run ID],) values (something, something)" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
"insert into [nGineUnitTests].[dbo].[TestOdbcReadAndWriteTo]([Run ID]) values (something, something)" & @CRLF & _
"insert [nGineUnitTests].[dbo].[TestOdbcReadAndWriteTo]([Run ID]) values (something, something)" & @CRLF & _
" insert into [nGineUnitTests].[dbo].[TestOdbcReadAndWriteTo]([Run ID]) values (something, something)" & @CRLF & _
"insert into [nGineUnitTests].[dbo].TestOdbcReadAndWriteTo([Run ID]) values (something, something)" & @CRLF & _
"insert [nGineUnitTests].dbo.TestOdbcReadAndWriteTo ([Run ID]) values (something, something)" & @CRLF & _
" insert nGineUnitTests.dbo.TestOdbcReadAndWriteTo ([Run ID]) values (something, something)" & @CRLF & _
" insert [nGineUnitTests].dbo.[TestOdbcReadAndWriteTo] ([Run ID]) values (something, something)" & @CRLF & _
"insert into [nGine Unit Tests].[dbo].[TestOdbcReadAndWriteTo]([Run ID]) values (something, something)" & @CRLF & _
"insert [nGine Unit Tests].[dbo].[TestOdbcReadAndWriteTo]([Run ID]) values (something, something)" & @CRLF & _
" insert into [nGine Unit Tests].[dbo].[TestOdbcReadAndWriteTo]([Run ID]) values (something, something)" & @CRLF & _
"insert into [nGine Unit Tests].[dbo].[TestOdbcReadAndWriteTo] ([Run ID]) values (something, something)" & @CRLF & _
"insert [nGine Unit Tests].[dbo].[TestOdbcReadAndWriteTo] ([Run ID]) values (something, something)" & @CRLF & _
" insert into [nGine Unit Tests].[dbo].[TestOdbcReadAndWriteTo] ( [Run ID],) values (something, something)" & @CRLF & _
"" & @CRLF & _
"" & @CRLF & _
""This is not an insert statement insert into [dbo].[DoNotAllowNullsString]([Col_umn1]) values (?)""
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