use v5.20; use Data::Dump qw( pp ); my $str = < qr/ " (?: \\\\ | \\" | [^"] )* " /x, Eily => qr/ " (?: [^\\] | \\. )* " /x); $str =~ /$re{$_}/ and say "$_ found $&" for keys %re; #### " .. \\" .. " Eily found " .. \\" .. " LanX found " .. \\"