Given the trouble that reversed character ranges like a-Z cause in standard regexps, there is no reason they should be allowed in rx. Right now, (rx (any "0-9z-a")) becomes "[0-9]" and (rx (any (?9 . ?0))) becomes "[9-0]". Such expressions are always a mistake; we do users a disservice by allowing them. The attached patch adds error checks, tests, documentation and a NEWS entry.