Ok, già meglio.

Ti chiedo però se la stringa da esaminare è determinata dal singolo url (cioè può contenere solo quello), oppure gli url da esaminare possono essere più di uno all'interno di un testo indefinito?

Nel primo caso puoi provare ad usare una cosa del genere:
codice:
/^(?:(?:https?|ftp):\/\/|www\.)[a-z0-9\.\/:]+\/$/i
E' chiaro che (come da tue indicazioni) potrebbero essere trovati anche url improbabili come:
http://:::/
www../
http://www.000/

Ovviamente per ottenere un riscontro più "realistico" possibile, dovrai definire meglio le disposizioni da considerare.