in reply to look-ahead greed changed between perl releases?

Just to add some more examples, here are 5.8 (which looks like what I would expect) thru 5.14. All are Strawberries except ActiveState 5.8.9. So it looks, as mentioned above, like something got b0rked in 5.10 and fixed in 5.14 (correct again).

c:\@Work\Perl>perl -wMstrict -le "print $]; my $s = 'alter string-N-U-M-B-E-R-O-N-E and string-N-U-M-B-E-R-T-W-O. +'; $s =~ s/(?=\S+([[:upper:]]-){2,}[[:upper:]]\b)/%/g; print qq{'$s'}; " 5.008009 'alter %s%t%r%i%n%g%-%N%-%U%-%M%-%B%-%E%-%R%-O-N-E and %s%t%r%i%n%g%-% +N%-%U%-%M%-%B%-%E%-%R%-T-W-O.' 5.010001 'alter %string-N-U-M-B-E-R-O-N-E and %string-N-U-M-B-E-R-T-W-O.' 5.012003 'alter %string-N-U-M-B-E-R-O-N-E and %string-N-U-M-B-E-R-T-W-O.' 5.014004 'alter %s%t%r%i%n%g%-%N%-%U%-%M%-%B%-%E%-%R%-O-N-E and %s%t%r%i%n%g%-% +N%-%U%-%M%-%B%-%E%-%R%-T-W-O.'