Спасибо
toxa82 за помощь, вот код, который берёт текст с тегами, отметками, ссылками и адресами email, и превращает всё это в html-ссылки.
Если кому-то пригодится, публикую здесь полную версию с исправлениями:
$text = preg_replace("/(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/is", '<a href="$1" target="_blank">$1</a>', $text);
$text = preg_replace("/(^|[^\/])(www\.[\S]+(\b|$))/is", '<a href="http://$2" target="_blank">$2</a>', $text);
$text = preg_replace('/(?<=\A|\W)@([\w]+)/ius', '<a href="/users/$1">@$1</a>', $text);
$text = preg_replace('/#([\w]+)/ius', '<a href="/tags/$1">#$1</a>', $text);
$text = preg_replace("/(([a-zA-Z0-9\-\_\.])+@[a-zA-Z\_]+?(\.[a-zA-Z]{2,6})+)/is", '<a href="mailto:$1">$1</a>', $text);