($re=$_)=~s/((begin)|(end)|.)/${['(','']}[!$2]\Q$1\E${[')','']}[!$3]/gs; $re = join'|',map quotemeta,eval{/$re/}; $re = qr/$re/;