It's better to use $istok to compare nickname as well as they can contain character which would be meaningful in regex, and because there's absolutely no benefit in using regex here for nickname.
The regex used against $1- is missing an \s before 'high' but well, \s matches tab character as well as some others, which are valid in text for irc, so if you wanted to make it a word, you could use \b (matches a position, not a character), which would work better but still would match on something else than an asvii 32 space. In my experience, using just an ascii 32 space is most of the time the best option, it can be literal or \x20 can be used.
@op: to prevent a specific line you can add a condition with another && operator with ($1- != hey, hi mairel), but because this is pretty short sighted (aka you might end up with a thousand of such condition), this is were regex would actually be powerful,