$_ = join'',<>; ($re=$_)=~ s#((]*>)|()||.)#${['(','']}[!$2]\Q$1\E${[')','']}[!$3]#sgi; $re=join"|",map quotemeta,eval{/$re/}; die $@ if $@=~/unmatched/i; s/$re//g; print;