% perl -nwle 'END{ warn +(times)[0],"\n" } print $_ ' /usr/share/dict/hv.words | wc -l 0.04 285520 % perl -nwle 'END{ warn +(times)[0],"\n" } print $_ if /^(.)(?!\1)(.)(?!\1|\2)(.)(?!\1|\2|\3)(.)(?!\1|\2|\3|\4)(.)$/ ' /usr/share/dict/hv.words | wc -l 0.13 8632 % perl -MList::MoreUtils=uniq -nwle 'END{ warn +(times)[0],"\n" } print $_ if /^(?:(.)(.)(.)(.)(.)(?(?{ 5 != uniq $1, $2, $3, $4, $5 })(?!)))$/ ' /usr/share/dict/hv.words | wc -l 0.39 8632 % perl -MList::MoreUtils=uniq -nwle 'END{ warn +(times)[0],"\n" } print $_ if /^(.)(.)(.)(.)(.)$/ && 5 == uniq $1, $2, $3, $4, $5 ' /usr/share/dict/hv.words | wc -l 0.1 8632 % #### % perl -MList::MoreUtils=uniq -nwle 'END{ warn +(times)[0],"\n" } print $_ if /^(?:(.)(.)(.)(.)(.)$(?(?{ 5 != uniq $1, $2, $3, $4, $5 })(?!)))/ ' /usr/share/dict/hv.words | wc -l 0.12 8632 %