$ mkdir -v /tmp/localetest; cd /tmp/localetest
# copy "en_US" and the files it refers to via its "copy" statements
$ cp -v /usr/share/i18n/locales/{en_US,en_GB,i18n,iso14651_t1,iso14651_t1_common} .
$ mv -v en_US en_TESTING
####
collating-element from ""
script
order_start ;forward;forward;forward;forward,position
"";"";"";IGNORE
order_end
##
##
$ 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