Homepage: https://www.gnu.org/software/emacs
S-exp notation for regexps -
This facility allows writing regexps in a sexp-based language
instead of strings. Regexps in the `rx' notation are easier to
read, write and maintain; they can be indented and commented in a
natural way, and are easily composed by program code.
The translation to string regexp is done by a macro and does not
incur any extra processing during run time. Example:
(rx bos (or (not "^")
(seq "^" (or " *" "["))))
=> "\\`\\(?:[^^]\\|\\^\\(?: \\*\\|\\[\\)\\)"
The notation is much influenced by and retains some compatibility with
Olin Shivers's SRE, with concessions to Emacs regexp peculiarities,
and the older Emacs package Sregex.