Also, shouldn't you get the same error from
sscanf("^^^^^^^^hello", "%*[]%s", string res) && res;
since it's an unbalanced pattern string lacking a closing bracket?
As far as I could see, this _does_ give you the same error in 7.7.
I have now implemented the interpretation of ^-X at the beginning of a set as a range rather than a negation. However, I have not created any compatibility fallback as I couldn't figure out how to do that for an operator (sscanf isn't a function)...