$re = '/(?<!.)([\s]*)(go|GO)\s*([\r\n])?/m';
$str = 'use SCRATCH
GO;
--go
set nocount ON ;go;
go
\' go \'
\'go\'
\'go
go\'
create table gonogo ( go int null, nogo int null)
GO
insert INTO mungbean VALUES (1); go
GO
;
select * from mungbean
go
go
go;
\'
select go from go
go
select go from allgo
GO
';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
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 PHP, please visit: http://php.net/manual/en/ref.pcre.php