Translate the rx-forms to a string regexp, as if they were the body of a (seq …) form. The rx macro expands to a string constant, or, if literal or regexp forms are used, a Lisp expression that evaluates to a string. Example:
(rx (+ alpha) "=" (+ digit)) ⇒ "[[:alpha:]]+=[[:digit:]]+"
Translate rx-expr to a string regexp which is returned. If no-group is absent or nil, bracket the result in a non-capturing group, ‘\(?:…\)’, if necessary to ensure that a postfix operator appended to it will apply to the whole expression. Example:
(rx-to-string '(seq (+ alpha) "=" (+ digit)) t) ⇒ "[[:alpha:]]+=[[:digit:]]+"
Arguments to literal and regexp forms in rx-expr must be string literals.
The pcase macro can use rx expressions as patterns directly; see rx in pcase.
For mechanisms to add user-defined extensions to the rx notation, see Extending Rx.
Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Rx-Functions.html