$_ = '(()(()()))'; (my $re=$_)=~s/((\()|(\))|.)/${[')','']}[!$3]\Q$1\E${['(','']}[!$2]/gs; eval{/$re/}; print "Balanced" unless $@ =~ /unmatched/;