I'm a little confused by the fact that underscore does not shown in the character class.

```
ELISP> (require 'rx)
rx
ELISP> (rx (any "A-Z" "_"))
"[A-Z_]"
ELISP> (rx (any "A-z" "_"))
"[A-z]"

```

Expected result is `"[A-z_]"` but actual is `"[A-z]"`.

But the test shows curious results for me:

```
ELISP> (string-match-p (rx (any "A-z_")) "9")
nil
ELISP> (string-match-p (rx (any "A-z_")) "_")
0 (#o0, #x0, ?\C-@)

```

I would like to clarify 2 things:

1. Is it correct to use `(any "A-Z" "a-z" "_")` to match `"_"` string?
2. Should I use `(any "A-Z" "a-z" "_")` or I can safely use `(any "A-z"
"_")` to match `"Abc_Def"` string