use Benchmark qw(cmpthese); @l = ("A".."Z","a".."z",qw(< / >),0..9); $x = join( '', map { $l[ rand @l ] } 1 .. 100_000 ) . ""; cmpthese ( -1, { noanchor => sub { local $_ = $x; s|()|zzz$1| }, anchor => sub { local $_ = $x; s|()$|zzz$1| }, } ); Rate noanchor anchor noanchor 5023/s -- -19% anchor 6222/s 24% --