Ну, я сталкивался с этой проблемой довольно много раз, что побудило меня написать свою собственную систему для синтаксического анализа любого вида синтаксиса.
Результат этого можно найти здесь ; обратите внимание, что это может быть излишним, и оно предоставит вам что-то, что позволит вам анализировать операторы с квадратными и круглыми скобками, одинарными и двойными кавычками, как вам угодно Например, вы можете разобрать что-то вроде этого (пример написан на Common Lisp):
(defun hello_world (&optional (text "Hello, World!"))
(format t text))
Вы можете использовать вложения, скобки (квадратные) и круглые скобки (круглые), одинарные и двойные кавычки, и это очень расширяемый.
Идея в основном является настраиваемой реализацией конечного автомата, который строит абстрактное синтаксическое дерево посимвольно. Я рекомендую вам взглянуть на исходный код (см. Ссылку выше), чтобы вы могли понять, как это сделать. Это возможно с помощью регулярных выражений, но попробуйте написать систему с использованием RE, а затем попытаться расширить (или даже понять) позже.