Salve ragazzi.
Sto costruendomi tutta una serie di funzioni per validare i dati passati da una form e mi sono bloccato nella sintassi dell'espressione regolare per validare le URL.

Sto usando il seguente pattern:

Codice PHP:
// $link contiene la URL passata dalla form
$pattern "^((\http(s)?://)?(www\.)?[a-zA-Z0-9.#@:%&_?=~-]+)?\][a-zA-Z0-9.#@:%&_\?=~-/]+$/";

if (
preg_match($pattern$link)) {
    
$link "$link ::: Indirizzo Valido";
} else {
    
$link "$link ::: Indirizzo NON Valido";

Ma ottengo il seguente warning e la validazione non mi va a buon fine.
Warning: preg_match(): No ending delimiter '^' found in c:\programmi\php\www\[prove]\funzioni filtro form\index.php on line xxx
Dov'è che sbaglio?

Peraltro.... ora che ci sono: nella stessa funzione volevo anche controllare (una volta che l'indirizzo è validato) che la URL esista davvero.
Con PHP5 posso usare get_headers(), ma se volessi fare una funzione retrocompatibile anche per PHP4, come potrei fare???