You could do it without the use of regex for now, using regex of course would probably shorten the code considerably and perhaps be just a little faster too? I don't know.

Code:
On ^*:Text:*:#: {
  var %trgt = $iif($target ischan,$chan,$nick)
  if (Email me at isin $1-) && ($wildtok($1-,*@*,1,32)) { echo -t %trgt $+(<,$nick,>) $+(4,Email me at $ifmatch,) | halt }
  if (*http:* iswm $1-) || (*www.* iswm $1-) || (*ftp:* iswm $1-) || (*mailto:* iswm $1-) {
    if ($wildtok($1-,$ifmatch,1,32)) { echo %trgt $+(<,$nick,>) $replace($1-,$ifmatch,$+(12,$ifmatch,)) | halt }
  }
}

on ^1:HOTLINK:*:#:{
  if (*http:* iswm $hotline) || (*www.* iswm $hotline) || (*ftp:* iswm $hotline) || (*mailto:* iswm $hotline) {
    if ($1 == $wildtok($1-,$ifmatch,1,32)) && ($mouse.key == 1) run $1
  }
  if (Email me at isin $hotline) && ($wildtok($1-,*@*,1,32) isin $hotline) {
    if ($mouse.key == 1) run $+(mailto:,$wildtok($1-,*@*,1,32))
  }
  halt
}