This is the part that makes it work only for regular users (not voice, op, etc):
If your network only has the three statuses (regular, voice, and op), then you can just change isreg to !isop , which would make it work as long as the user is not an op. If you have more statuses than that, then !isop may not work exactly the way you want and you could use an OR statement to check isreg and isvo (is voice):
($nick isreg $chan || $nick isvo $chan)