First a minor note - using lookingAt() is sort of an odd choice here, considering that you're also using \\z to force a match with the end of the
pattern. It seems simpler to just use matches(), which requires a match of the
entire expression, starting at the beginning and ending at, well, the end. Then you don't need to specify //z in the expression; it's implicit.
Anyway, to add your new rule to the regex, you can use negative lookahead:
Basically the (?!A33) means from this position (the beginning, in this case) the matcher needs to be able to scan ahead and
not see A33. Then when it gets to the ), the pattern can forget about the lookahead expression and remember it's still at the beginning of the expression, and try to match the remainder of the pattern (the A-Z]{1}[0-9]{6}).