RL @PHP para vincular com Regex

Sei que já vi isso ser feito em muitos lugares, mas preciso de algo um pouco mais diferente do que a norma. Infelizmente, quando eu procuro isso em qualquer lugar, ele fica enterrado em posts sobre como fazer o link em um link de tag html. Eu quero que a função PHP retire "http: //" e "https: //" do link, assim como qualquer coisa após o. *, Então basicamente o que estou procurando é transformar A em B.

A: http://www.youtube.com/watch?v=spsnQWtsUFM
B: <a href="http://www.youtube.com/watch?v=spsnQWtsUFM">www.youtube.com</a>

Se isso ajudar, aqui está a minha função atual de substituição de regex do PH

ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]", "<a href=\"\\0\" class=\"bwl\" target=\"_new\">\\0</a>", htmlspecialchars($body, ENT_QUOTES)));

Provavelmente também seria útil dizer que não tenho absolutamente nenhum entendimento em expressões regulares. Obrigado

EDIT: Quando inseri um comentário como esteblahblah <a href="https://www.facebook.com/?sk=ff&ap=1" rel="nofollow">https://www.facebook.com/?sk=ff&ap=1</a> blah Recebo html assim<a class="bwl" href="blahblah <a href="https://www.facebook.com/?sk=ff&amp;ap=1" rel="nofollow">https://www.facebook.com/?sk=ff&amp;ap=1</a> blah">www.facebook.com</a>, que não funciona de todo, pois leva o texto ao redor do link. Funciona muito bem se alguém apenas comenta um link. Foi quando mudei a função para este

preg_replace("#^(.*)//(.*)/(.*)$#",'<a class="bwl" href="\0">\2</a>',  htmlspecialchars($body, ENT_QUOTES));

questionAnswers(7)

yourAnswerToTheQuestion