Php parse enlaces / correos electrónicos

Me pregunto si hay un fragmento simple que convierte enlaces de cualquier 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>

No quiero usar ninguna librería específica de PHP5.

Gracias por tu tiempo.

ACTUALIZAR He actualizado el texto anterior a lo que quiero convertirlo. Tenga en cuenta que la etiqueta href y el texto son diferentes para los casos 2 y 3.

Actualización2 ¿Cómo el chat de gmail lo hace? El suyo es bastante inteligente y funciona solo para nombres de dominio reales. p.ej. a.ly funciona pero a.cb no funciona.

Respuestas a la pregunta(4)

Su respuesta a la pregunta