Hallo morpheuz!
Mit folgendem Pattern sollte sich der Benutzer- bzw. Postfach-Name einer eMail-Adresse nach deinen Wünschen auf Gültigkeit überprüfen lassen (ungetestet):
"/^([A-Za-z0-9_])+(-[A-Za-z0-9_]+)?(.[A-Za-z0-9_]+(-[A-Za-z0-9_]+)?)?/"
Bei deinen Vorgaben hast du die Mittelnamen nicht berücksichtig. Ein Name wie "Karl-Heinz Dieter van de Blömches" lässt sich nicht nach deinen Vorgaben Abbilden. Richtig wäre eigentlich folgende Darstellung:
Karl-Heinz.Dieter.van-de-Blömches@... oder
Karl-Heinz.Dieter.van.de.Blömches@...
Noch ein Tipp: Ich würde anstatt der Funktion "ereg()" die Funktion "preg_match()" u. a. wegen den Geschwindigkeitsvorteilen bevorzugen. (Siehe hierzu auch die dclp-FAQ: "8.2. Soll ich ereg() oder preg() verwenden?", http://www.dclp-faq.de/q/q-regexp-ereg.html).
Grüsse,
Sky