Chiaramente devi fare una cosa separata. Il tag e` leggermente diverso tra link e mailto:

Prova a vedere come ti sembra questo (anch'io sto studiando le RE, e prendo delle cantonate sonore).
codice:
$text =~ s/((http\:[\/\\]{2})|(www\.)??([\w\-]+?\.)+?([\w\-]+?[\/\\])+
[\w\-]+?(\.\w+)??(\#[\w\-]+)??(\?[\w\-]+)??/\<a href\=\'$^N\'\>$^N\<\/a\>/g;
Nota che ho usato $^N per il match.
Nota: ho inserito un "acapo", che nella RE dovrai togliere

In alternativa nel match devi usare (?...) per tutte le parentesi tranne quella piu` esterna se vuoi usare il $1