Php parse links / emails

Eu estou querendo saber se existe um trecho simples que converte links de qualquer tipo:

<code>http://www.cnn.com to <a href="http://www.cnn.com">http://www.cnn.com</a>
cnn.com to <a href="http://www.cnn.com">cnn.com</a>
www.cnn.com to <a href="http://www.cnn.com">www.cnn.com</a>
[email protected] to  to <a href="mailto:mailto:[email protected]">mailto:[email protected]</a>
</code>

Eu não quero usar nenhuma biblioteca específica do PHP5.

Obrigado pelo seu tempo.

ATUALIZAR Eu atualizei o texto acima para o que eu quero convertê-lo. Por favor, note que a tag href e o texto são diferentes para os casos 2 e 3.

UPDATE2 Como é que o chat do Gmail faz isso? Deles é muito inteligente e funciona apenas para nomes de domínios reais. por exemplo. a.ly funciona mas a.cb não funciona.

questionAnswers(4)

yourAnswerToTheQuestion