;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.


#@1629 Return a regexp to match a string in the list STRINGS.
Each member of STRINGS is treated as a fixed string, not as a regexp.
Optional PAREN specifies how the returned regexp is surrounded by
grouping constructs.

If STRINGS is the empty list, the return value is a regexp that
never matches anything.

The optional argument PAREN can be any of the following:

a string
    the resulting regexp is preceded by PAREN and followed by
    \), e.g.  use "\\(?1:" to produce an explicitly numbered
    group.

`words'
    the resulting regexp is surrounded by \=\<\( and \)\>.

`symbols'
    the resulting regexp is surrounded by \_<\( and \)\_>.

non-nil
    the resulting regexp is surrounded by \( and \).

nil
    the resulting regexp is surrounded by \(?: and \), if it is
    necessary to ensure that a postfix operator appended to it will
    apply to the whole expression.

The returned regexp is ordered in such a way that it will always
match the longest string possible.

Up to reordering, the resulting regexp is equivalent to but
usually more efficient than that of a simplified version:

 (defun simplified-regexp-opt (strings &optional paren)
   (let ((parens
          (cond ((stringp paren)       (cons paren "\\)"))
                ((eq paren \='words)    \='("\\\=<\\(" . "\\)\\>"))
                ((eq paren \='symbols) \='("\\_<\\(" . "\\)\\_>"))
                ((null paren)          \='("\\(?:" . "\\)"))
                (t                       \='("\\(" . "\\)")))))
     (concat (car parens)
             (mapconcat \='regexp-quote strings "\\|")
             (cdr parens))))

(fn STRINGS &optional PAREN)
(defalias 'regexp-opt #[513 "\304 \305\306\"\216\307\310\211;\203 \202 \205 \311\2034 \312\313\314\315!\316\"!\206. \317?#\202< \211\2069 \320\321Q\322\267\202P \323\324Q\202Q \325\326Q\202Q \211+\266\202)\207" [max-lisp-eval-depth completion-ignore-case completion-regexp-list regexp-unmatchable match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] 10000 nil "\\(" regexp-opt-group delete-dups sort copy-sequence string-lessp t "\\(?:" "\\)" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (words 66 symbols 73)) "\\<" "\\>" "\\_<" "\\_>"] 10 (#$ . 85)])#@141 Return the depth of REGEXP.
This means the number of non-shy regexp grouping constructs
(parenthesized expressions) in REGEXP.

(fn REGEXP)
(defalias 'regexp-opt-depth #[257 "\300 \301\302\"\216\303\304\"\210\305\306\211\303\307#\2034 \305\225\262\310\224\204 \311\305\224#\203 \262T\262\202 \266\203)\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data t] 3] string-match "" 0 nil "\\\\(\\(\\?[0-9]*:\\)?" 1 subregexp-context-p] 9 (#$ . 2352)])#@299 Return a regexp to match a string in the sorted list STRINGS.
If PAREN non-nil, output regexp parentheses around returned regexp.
If LAX non-nil, don't output parentheses if it doesn't require them.
Merges keywords to avoid backtracking in Emacs's regexp matcher.

(fn STRINGS &optional PAREN LAX)
(defalias 'regexp-opt-group #[769 ";\203	 \202 \203 \300\202 \301\203 \302\202 \301\203# \301\202$ \203, \301\202- G\303U\2037 \301\207G\304U\203Z @G\304U\203Q \305@!Q\207\305@!Q\207@G\303U\203o \306A\307\211#\310R\207@G\304U\203\325 A\211\203\216 \211@G\304U\204\216 \211A\262\202{ \211\262\203\325 \311\211\211\203\273 \211@\211G\304U\203\257 \312!B\262\202\264 \211B\262A\266\202\202\230 \210\211\203\316 \306\237!\313\314!\260\207\314!Q\207\315\301\"\211G\303V\203\371 \211G\316\317\320\"\n\"\305!\306\307\211#R\207\316\321	\"\315\301\"\211G\303V\203&\211G[\322\316\317\323\"\"\324\"\306\307\211#\305\237!\nR\207\325\n@\303\304#\326\f\"\211G\f\233	\306!\313\306!\f\260\207" ["\\(?:" "" "\\)" 0 1 regexp-quote regexp-opt-group t "?" nil string-to-char "\\|" regexp-opt-charset try-completion mapcar make-closure #[257 "\211\300\301O\207" [V0 nil] 4 "\n\n(fn S)"] reverse sort #[257 "\211\301\300O\207" [V0 0] 4 "\n\n(fn S)"] string-lessp substring-no-properties all-completions] 18 (#$ . 2842)])#@184 Return a regexp to match a character in CHARS.
CHARS should be a list of characters.
If CHARS is the empty list, the return value is a regexp that
never matches anything.

(fn CHARS)
(defalias 'regexp-opt-charset #[257 "\301\302!\303C\304C\305C\305\211\211\211\2039 \211@\211\306\267\202, \307\262\2022 \310\262\2022 \311\262\2022 \312I\210A\266\202\202 \210\313\314\315\n$\"\210\242\242Y\203\214 \242\242\316\\V\203n \317\320\242	\242	\242$\240\210\202\214 \242\242Y\203\214 \317\321\242	\242#\240\210\211\242T\240\210\202n \242R\211G\211\322\267\202\240 \207\323!\207\324\230\203\250 \325\207\326\307Q\207" [regexp-unmatchable make-char-table regexp-opt-charset -1 -2 "" #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (93 26 94 32 45 38)) "]" "^" "-" t map-char-table make-closure #[514 "\211\205\234 :\203U @S\301\242U\203 \301A\240\207\301\242\302\242\303\\V\2030 \300\304\305\300\242\302\242\301\242$\240\210\202K \301\242\302\242Y\203K \300\304\306\300\242\302\242#\240\210\302\211\242T\240\210\2020 \302@\240\210\301A\240\207S\301\242U\203a \301\240\207\301\242\302\242\303\\V\203z \300\304\305\300\242\302\242\301\242$\240\210\202\225 \301\242\302\242Y\203\225 \300\304\306\300\242\302\242#\240\210\302\211\242T\240\210\202z \302\240\210\301\240\207" [V0 V1 V2 2 format "%s%c-%c" "%s%c"] 8 "\n\n(fn C V)"] 2 format "%s%c-%c" "%s%c" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (0 154 1 156)) regexp-quote "^-" "[-^]" "["] 14 (#$ . 4231)])
(provide 'regexp-opt)
