Не съм сигурен, че това изобщо е възможно. Със сигурност ще ви трябват задълбочени познания за SQL синтаксиса на вашата целева СУБД. Например в горната част на главата ми това е едно изявление на MySQL:
INSERT INTO things
SELECT * FROM otherthings ON DUPLICATE KEY
UPDATE thingness=thingness+1
Вероятно в някои СУБД има конструкции, които без разделител биха могли да бъдат двусмислени.
Мисля, че може да си принуден. Това е напълно стандартният начин за разграничаване на SQL изрази. Дори ако успеете да намерите евристика за откриване на точките на вероятно началото на SQL-изявлението, рискувате бедствия като случайно „ИЗТРИВАНЕ ОТ неща“-без клауза-WHERE.
Би ли било приемливо изразът double-newline-for-new?
Не, дори с разделители на точка и запетая, регулярният израз не е достатъчно мощен, за да анализира SQL. Проблемните точки включват:
';'
";"
`;`
'\';'
''';'
-- ;
#;
/*;*/
и всяко вмъкване на тези структури. Ек!