$_=qq{ env { {}{} {{}} } }; (my $re=$_)=~s/((\{)|(\})|.)/${[')','']}[!$3]\Q$1\E${['(','']}[!$2]/gs; $re = join'|',map{quotemeta}eval{/$re/}; die $@ if $@; print +(/env\s*\{($re)\}/)[0];