The regular expression: (?-imsx:s/(".*?")/($x=$1)=~y: :_:, $x/ge) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?-imsx: group, but do not capture (case-sensitive) (with ^ and $ matching normally) (with . not matching \n) (matching whitespace and # normally): ---------------------------------------------------------------------- s/ 's/' ---------------------------------------------------------------------- ( group and capture to \1: ---------------------------------------------------------------------- " '"' ---------------------------------------------------------------------- .*? any character except \n (0 or more times (matching the least amount possible)) ---------------------------------------------------------------------- " '"' ---------------------------------------------------------------------- ) end of \1 ---------------------------------------------------------------------- / '/' ---------------------------------------------------------------------- ( group and capture to \2: ---------------------------------------------------------------------- $ before an optional \n, and the end of the string ---------------------------------------------------------------------- x= 'x=' ---------------------------------------------------------------------- $ before an optional \n, and the end of the string ---------------------------------------------------------------------- 1 '1' ---------------------------------------------------------------------- ) end of \2 ---------------------------------------------------------------------- =~y: :_:, '=~y: :_:, ' ---------------------------------------------------------------------- $ before an optional \n, and the end of the string ---------------------------------------------------------------------- x/ge 'x/ge' ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------