Hallo Alexander,
Die Deutschen haben mit dem "ß" ein ganz fieses Monster, dass je nach Kontext in "SS" oder "SZ" umgeschrieben werden muß (Maße vs. Masse), und in der Umkehrung kann aus "SS" entweder "ss" oder "ß" werden, genau wie aus "SZ" entweder "sz" oder "ß" werden kann.
Das stimmt übrigens nicht ganz: Laut den Regeln zur dt. Rechtschreibung, Fassung 2006, Abschnitt 2.3, § 25, E3:
| E3: Bei Schreibung mit Großbuchstaben schreibt man SS, zum Beispiel:
| Straße – STRASSE
Ferner gilt auch (E2 des gleichen §):
| E2: Steht der Buchstabe ß nicht zur Verfügung, so schreibt man ss. In der
| Schweiz kann man immer ss schreiben. Beispiel: Straße – Strasse
Nirgends wird dort »SZ« erwähnt. Das heißt: Wenn entweder der Buchstabe 'ß' nicht vorhanden ist (zum Beispiel auf einer nicht-deutschen Tastatur) oder man etwas Großschreiben will, dann wird *immer* 'ss' (oder 'SS') genommen, *nie* 'sz' / 'SZ'. Das wiederum bedeutet: Maße wird in Großschreibung zu MASSE - und man kann dann nur noch aus dem Kontext unterscheiden, ob jetzt nun Masse oder Maße gemeint ist.
Kann natürlich sein, dass es früher mal anders war, die wenigen Jahre in der Grundschule bei mir, als die alte Rechtschreibung noch galt, habe ich mich noch nicht für so etwas interessiert. ;-)
Übrigens: Die ganze Arbeit, sich über Groß- und Kleinschreibung Gedanken zu machen, hat einem schon das Unicode-Konsortium abgenommen. Zum einen gibt's einen Teil des Unicode-Standards, der sich mit dem Thema beschäftigt: Unicode Standard Annex #21: Case Mappings, zum anderen gibt es eine Datei, die Teil des Unicode-Standards ist, die Informationen zum Mapping verschiedener Zeichen bereitstellt: http://www.unicode.org/Public/UNIDATA/CaseFolding.txt (dort wird übrigens lustiger- und zufälligerweise im Header gerade Dein Beispiel mit "Maße" <-> "MASSE" erwähnt ;-))
Und auch allgemein ist die Seite unicode.org SEHR hilfreich, wenn es auch nur ansatzweise um Internationalisierung geht! Dort haben sich schlaue Köpfe nämlich schon SEHR VIELE Gedanken zu allen möglichen Themen gemacht und entsprechende Informationen bereitgestellt. Wenn man eine konkrete Fragestellung hat, schadet es nicht, sich dort mal umzusehen. Es gibt dort ETLICHE nützliche Dinge, die einem eine MENGE Kopfschmerzen bezüglich der Konzeption abnehmen (und dafür eine Menge Kopfschmerzen bezüglich der Implementierung bereiten, wenn man's ganz korrekt machen will ;-)). Sehr interessant ist zum Beispiel auch das Common Locale Data Repository, dort findet man zum Beispiel auch Ländernamen in allen möglichen Sprache, usw. usf. </ausschweif>
Ferner: Wenn man in PHP sowieso mit regulären Ausdrücken Groß- und Kleinschreibung matchen will, dann empfiehlt sich ein Blick in http://de3.php.net/manual/en/reference.pcre.pattern.syntax.php - dort gibt's einen Abschnitt "Unicode character properties". Wenn der U-modifier also aktiviert ist bei preg_match, dann matcht \p{Ll} z.B. einen Kleinbuchstaben. Wie man sieht, haben viele Bibliotheken bestimmte Dinge bereits implementiert, so dass man sich nicht mehr selbst um sie kümmern muss - das kann auch sehr hilfreich sein.
Viele Grüße,
Christian