Hi chris!
Du solltest vielleicht zunächst die Funktion parse_url()
(http://www.selfphp.info/funktionsreferenz/url_funktionen/parse_url.php)
verwenden. Die zerteilt dir die User-Eingaben in ein hübsch übersichtliches assoziatives Array. Dann kannst du die einzelnen Teile mit einfacheren und übersichtlicheren regulären Ausdruck auf Gültigkeit überprüfen.
Ich mache das jedenfalls so.
Gruß
n i c o