$ localedef -i en_TESTING -f UTF-8 -c ./en_TESTING.UTF-8 $ LOCPATH=/tmp/localetest LC_ALL=en_TESTING.UTF-8 perl -Mlocale -le 'print for sort qw/ab a b bc/' a ab bc b $ LOCPATH=/tmp/localetest LC_ALL=en_TESTING.UTF-8 perl -wMstrict -lMlocale print "1 $_" for "abcabbc"=~/${\join "|", reverse sort qw(b bc) }/g; print "2 $_" for "abcabbc"=~/${\join "|", sort {length$b<=>length$a} qw(b bc) }/g; __END__ 1 b 1 b 1 b 2 bc 2 b 2 bc