$ perle 'my $re; BEGIN { $re = qr{(?x: [%/?<>\\:*|":] )} } say q{%/?<>\\:*|":} =~ s/$re/_/gr' ___________ $ perle 'say q{%/?<>\\:*|":} =~ y{%/?<>\\:*|":}{_}r' ___________ $ for i in {1..5}; do perle 'use Benchmark qw{cmpthese}; my $re; BEGIN { $re = qr{(?x: [%/?<>\\:*\|":] )} }; my $str = q{%/?<>\\:*|":}; cmpthese 0 => { s => sub { $str =~ s/$re/_/gr }, y => sub { $str =~ y{%/?<>\\:*|":}{_}r } }'; done Rate s y s 212144/s -- -96% y 5420361/s 2455% -- Rate s y s 204213/s -- -96% y 5632150/s 2658% -- Rate s y s 201600/s -- -97% y 5771041/s 2763% -- Rate s y s 204103/s -- -96% y 5026909/s 2363% -- Rate s y s 222651/s -- -96% y 5600560/s 2415% --