Javascript - слишком сложный язык, чтобы его можно было надежно проанализировать с помощью регулярного выражения.Проблема не только в том, что вы упомянули о вложенных скобках;есть также тот факт, что почти все в строке следует игнорировать, что есть по крайней мере два способа определения функции и множество других проблем.
Кроме того, что бы вы сделали с function() { alert("Hello!"); }();
?Это функция, но она выполняется немедленно.
По сути, вам понадобится какой-нибудь интерпретатор javascript или отладчик, чтобы увидеть, что работает, а что нет.