http://www.perlmonks.org?node_id=11160600


in reply to Re^4: no way it's not a bug of Perl
in thread I thought I found a bug of Perl

s/(?:)// will do nothing (or rather, replace one-zero length string with another zero-length string). So, if you have a possibly-empty pattern in a variable, you could use

s/(?:$pat)//

or

my $re = qr/$pat/; s/$re//

The latter was buggy before 5.18 as it resulted in the same as s/// when $pat contained an empty string.