Respostas:
A macro rxretorna seqüências de caracteres regexp que podem ser passadas para outras funções do Emacs.
ELISP> (rx (one-or-more (any upper lower)))
"[[:lower:][:upper:]]+"
ELISP> (rx (one-or-more (any "A-Z" "a-z")))
"[A-Za-z]+"
Isso não responde diretamente à sua pergunta; ele empurra a pergunta para "esses dois regexes são idênticos?" Então, vamos procurar uma letra maiúscula ou minúscula que não esteja entre Ae Z, ou ae z. Vamos tentar á.
ELISP> (string-match-p (rx (one-or-more (any upper lower))) "á")
0 (#o0, #x0, ?\C-@)
ELISP> (string-match-p (rx (one-or-more (any "A-Z" "a-z"))) "á")
nil
Portanto, as expressões regulares não são idênticas. Presumivelmente, você deseja usar a (rx (one-or-more (any upper lower)))maior parte do tempo; não inclui apenas caracteres que a maioria das pessoas considera letras, mas eu argumentaria que também é mais legível.
[A-Z]corresponde apenas a uma letra maiúscula ASCII , ou seja, uma letra deAatravésZ. Existem outras letras maiúsculas não ASCII (por exemplo, em outros idiomas que não o inglês).