Нашёл тут у себя старый код, который решал интересную задачу поиска произвольно вложенных конструкций с помощью регулярных выражений. Эх! За что люблю Perl, так это за то что в нём такие мощные regexp'ы. Решение было подсмотрено в книге Дж.Фридла "Регулярные выражения" и называется это решение "Динамические регулярные выражения".
Regexp для проверки правильности вложенности скобок в строке текста выглядит вот так
my $regex;
$regex = qr/ (?:[^()]+ | \( (??{ $regex }) \) )* /x;
if ( $text =~ m/$regex/ ) {
print "строка валидна\n";
}