For one, you're only checking the first word for urls/emails (if ($regex($1,/ $+ $re.mail $+ /i))) when it should be $1-

Try this, a slight recode; changed the email expression a little (added a couple more valid chars) and changed the way the re.* aliases work.

Code:
alias re.link return $regex($1-,/(?:\w+\:\/\/)?[\w\.]+\.(?:com|net|org|biz|us|ca|uk|ph|info)(?:[\w\/\%\.]*?)/)
alias re.mail return $regex($1-,/(?:(?:[\w.%+-])+@(?:[\w-]+\.)+[a-z]{2,4})\b/i)
on @*:text:*:#channel:{
  if ($nick !isop #) && ($re.mail($1-) || $re.link($1-)) {
    ban -ku75 # $nick 1 no adds
  }
}