Регулярное выражение может анализировать только обычный язык . Это язык, который можно выразить с помощью конечного автомата.
Большинство языков программирования, включая SQL, не могут быть выражены как обычный язык и, следовательно, не могут быть проанализированы с помощью регулярных выражений. Даже выполнение ограниченных задач, таких как разбиение выражений SQL, будет невероятно трудным с регулярными выражениями.
Вам нужно будет использовать более надежный генератор синтаксического анализатора, который может обрабатывать более сложные грамматики. Вы помечаете свой вопрос с помощью PHP, так что вы можете посмотреть Lime .
Вам также необходимо найти файл грамматики для PHP, совместимый с выбранным вами генератором парсера. Я не уверен, где взять один для PHP и Lime, но есть чистый проект Perl DBIx :: MyParsePP , основанный на грамматике MySQL.