Please clarify "detects only 1 bad channel". I can't tell from your description what's the problem, since you didn't give examples. Does that mean there's some bad channels it won't match if they're the only bad channel in the string? Or, just that it's only showing the 1st match? or that it's matching some good channels it shouldn't? You don't need to use this inside the reply to whois to test your regex. If the regex is using $3- then make your dummy string to test it:

//tokenize 32 parm1 parm2 #list #of #channels | echo -a $regex($3-,pattern)

I still don't think you need to bend over backwards to give extra info to spammers. Most people won't be in a bad channel, and if someone is, the vast majority of those would be in just 1 bad channel. I see no reason to add complexity to the script in order to make things easier for the worst-of-the-worst being in multiple bad channels. If someone is in channels they shouldn't be in, they know which ones they are without your message even telling them which