"$nick" has to be "$1" in the spamdetect alias... all the way through it. Otherwise it will not identify. The information in "$nick" is lost in the transition from timer to alias.
The isreg identifier wont moderate voiced users. He said he wanted only op exempt and isreg would do that, however, it would not include voiced users on the channel. It would result in the same length of that line to catch voices as well, which is why i submitted it that way.