Sorry, this was fixed with a couple of very big commits building on top of each other. I don't see how I can backport those without risking other breakage. Here's an easy reproducer, btw: my $y = "f\N{U+00F6}bar\n"; my $x = "bar\n"; print "$-[0]\n" if $y =~ /$x/; utf8::upgrade($x); print "$-[0]\n" if $y =~ /$x/; As for the update, this is not possible. It would mean that all other modules need to be upgraded as well. While we could do that for our packages, 3rd party stuff would break.