MatchFull("0x1234", "(0x[[:xdigit:]]+)", &x);
Works when x is a string but not when x is an int. Is there a way to enable different bases in integer conversion?
I suppose in some fantasy world the base of the integer string could be deduced from the characters allowed to match, but I wouldn't advocate for that.