Bielie, a couple of things to consider:
Your regex will only work if someone calls your name at the first of his or her sentence, meaning they have to call your nick first for your regex to respond. If they they enter your name in the middle of their sentence, the regex won't trigger. That is what the caret sign in regex stands for.
You elseif condtion is incorrect. It should have been:
if ($nick == OperServ || $nick == iServ || $nick == chanserv || $nick == BotServ) {
Without the $nick and space being placed, it's going to be unworkable.
For that matter, you can use $istok or $fintok in place of the use of serveral OR opeators:
elseif ($istok(operserv|iserv|chanserv|botserv,$nick,124)) { halt }
can you notice an address? Why use an address when you can do it as such:
on $*:text:$(/(\s\Q $+ $me $+ \E\b)|(\s\Q $+ $anick $+ \E)\b/iS):#:{
if (%flood [ $+ [ $nick ] ]) { return }
set -eu3 %flood [ $+ [ $nick ] ] $nick
inc %highlight
notice $me $($+([ $+ [ $nick ] ]),2) highlighted you in $chan $+ . You have been highlighted %highlight times.
notice $nick You highlighted $regml(1) $+ . You are number: %highlight $+ .
}