$ 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