I think I figured this out.
First, I correct my original regular expression to recognize that + is a special character, and I got the repeat on the digits:
[^@]*-catalog-item\+[\d]*-current
Then I added a negative lookahead, as follows
[^@]*-catalog-item\+(?!2016-c|40352-c|21-c|93125-c)[\d]*-current
This is my first time doing a negative lookahead, but I think it works. I would appreciate somebody who knows what they are doing giving it a quick lookover to tell me if I did it right.
By the way, I notice that the negative lookahead is usually inside of parens. Does this mean $1 will equate to, e.g., 2016-c or does a negative lookahead not count as a match?
Thanks.