use strict;
my $str = 'I am parsing some SQL statements and have found places where the SELECT statement may be:
SELECT [tblCustomer].[FirstName], [tblCustomer.LastName], [tblOrder].[Order_No]
Another example:
SELECT IIf([tbl_ref_Service].[Root_Service] Is Null,[tbl_ref_Service].[Service],[tbl_ref_Service].[Root_Service]) AS Root_Service, tbl_POC_Assigned.POC_ID, [tbl_POC_Assigned.Hex_ID] & "_" & [tbl_Hex.Generic_ID] & "_" & [tbl_Lateral.Service_ID] & "_" & [tbl_Hex.ODD_Micap] & "_Null" AS Tool_Generic_Line, tbl_Hex.Building_ID AS Hex_Building_ID, tbl_POC.Lateral_ID, tbl_Generic_Service.Peak_Flow, [Diversity_Factor]*[Peak_Flow] AS Avg_Flow, tbl_POC_Assigned.Flow, tbl_POC_Assigned.Flow_Avg';
my $regex = qr/(\[\w+)\.(?=\w+])/p;
my $subst = '$1].[';
my $result = $str =~ s/$regex/$subst/rg;
print "The result of the substitution is' $result\n";
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 Perl, please visit: http://perldoc.perl.org/perlre.html