1<?xml version="1.0" encoding="UTF-8"?>
2
3<section id="pcre"><title>Perl Compatible Regular Expressions</title>
4
5<para>This is an interface to &pcre-link;.</para>
6<simpara>When this module is present, &features-my; contains the
7 symbol <constant>:PCRE</constant>.</simpara>
8
9<variablelist id="pcre-api"><title>PCRE module API</title>
10 <varlistentry id="pcre-version">
11  <term><code>(PCRE:PCRE-VERSION)</code></term>
12  <listitem><simpara>Return version information as 4 values: descriptive
13    &string-t;; 2 &fixnum-t;s: major and minor numbers; date &string-t;.
14 </simpara></listitem></varlistentry>
15 <varlistentry id="pcre-config">
16  <term><code>(PCRE:PCRE-CONFIG &type-r;)</code></term>
17  <listitem><para>Return some information about the PCRE build
18    configuration.  &type-r; is one of <simplelist>
19     <member><literal>:UTF8</literal></member>
20     <member><literal>:NEWLINE</literal></member>
21     <member><literal>:LINK-SIZE</literal></member>
22     <member><literal>:POSIX-MALLOC-THRESHOLD</literal></member>
23     <member><literal>:MATCH-LIMIT</literal></member>
24     <member><literal>:STACKRECURSE</literal></member>
25     <member><literal>:UNICODE-PROPERTIES </literal></member>
26     <member><literal>:MATCH-LIMIT-RECURSION</literal></member>
27     <member><literal>:BSR</literal></member>
28 </simplelist></para></listitem></varlistentry>
29 <varlistentry id="pcre-compile">
30  <term><code>(PCRE:PCRE-COMPILE &string-r; &key-amp; :STUDY
31    :IGNORE-CASE :MULTILINE :DOTALL :EXTENDED :ANCHORED :DOLLAR-ENDONLY
32    :EXTRA :NOTBOL :NOTEOL :UNGREEDY :NOTEMPTY :NO-AUTO-CAPTURE)</code></term>
33  <listitem><simpara>Compile a pattern, optionally study it.
34 </simpara></listitem></varlistentry>
35 <varlistentry id="pattern-info"><term>
36   <code>(PCRE:PATTERN-INFO &pattern-r; &optional-amp; request)</code></term>
37  <listitem><para>Return some information about the &pattern-r;,
38    such as <simplelist><member><literal>:OPTIONS</literal></member>
39     <member><literal>:SIZE</literal></member>
40     <member><literal>:CAPTURECOUNT</literal></member>
41     <member><literal>:BACKREFMAX</literal></member>
42     <member><literal>:FIRSTBYTE</literal></member>
43     <member><literal>:FIRSTTABLE</literal></member>
44     <member><literal>:LASTLITERAL</literal></member>
45     <member><literal>:NAMEENTRYSIZE</literal></member>
46     <member><literal>:NAMECOUNT</literal></member>
47     <member><literal>:NAMETABLE</literal></member>
48     <member><literal>:STUDYSIZE</literal></member>
49     <member><literal>:OKPARTIAL</literal></member>
50     <member><literal>:JCHANGED</literal></member>
51     <member><literal>:HASCRORLF</literal></member>
52     <member><literal>:MINLENGTH</literal></member>
53 </simplelist></para></listitem></varlistentry>
54 <varlistentry id="pcre-name-to-index">
55  <term><code>(PCRE:PCRE-NAME-TO-INDEX &pattern-r; &name-r;)</code></term>
56  <listitem><simpara>Convert the name of the sub-pattern to an index in
57    the return vector.</simpara></listitem></varlistentry>
58 <varlistentry id="pcre-exec">
59  <term><code>(PCRE:PCRE-EXEC &pattern-r; &string-r; &key-amp;
60    :WORK-SPACE :DFA :BOOLEAN :OFFSET :ANCHORED :NOTBOL :NOTEOL :NOTEMPTY
61    :PARTIAL :DFA-SHORTEST :DFA-RESTART :FIRSTLINE :DUPNAMES :NEWLINE-CR
62    :NEWLINE-LF :NEWLINE-CRLF :NEWLINE-ANY :NEWLINE-ANYCRLF :BSR-ANYCRLF
63    :BSR-UNICODE :JAVASCRIPT-COMPAT :NO-START-OPTIMIZE :NO-START-OPTIMISE
64    :PARTIAL-HARD :NOTEMPTY-ATSTART)</code></term>
65  <listitem><simpara>Execute the compiled &pattern-r; against the
66    &string-r; at the given &offset-r; with the given options.
67    Returns &nil; if no matches or a &vector-t; of &length;
68    <literal>CAPTURECOUNT+1</literal> of <type>PCRE:MATCH</type> structures,
69    unless <literal>:BOOLEAN</literal> was non-&nil;, in which case
70    return &t; as an indicator of success, but do not allocate anything.
71   </simpara><simpara><constant>:DFA</constant> argument determines
72    whether <function>pcre_dfa_exec</function> is used instead
73    of <function>pcre_exec</function> (PCRE v6 and better).</simpara>
74   <simpara><constant>:WORK-SPACE</constant> is only used
75    for <constant>:DFA</constant> and defaults to 20.</simpara>
76 </listitem></varlistentry>
77 <varlistentry id="pcre-match-access">
78  <term><code>(PCRE:MATCH-START &match-r;)</code></term>
79  <term><code>(PCRE:MATCH-END &match-r;)</code></term>
80  <listitem><simpara>Return the start and end of the &match-r;. &setf;-able.
81 </simpara></listitem></varlistentry>
82 <varlistentry id="match-substring">
83  <term><code>(PCRE:MATCH-SUBSTRING &match-r; &string-r;)</code></term>
84  <listitem><simpara>Return the substring of &string-r; bounded by &match-r;.
85 </simpara></listitem></varlistentry>
86 <varlistentry id="match-strings">
87  <term><code>(PCRE:MATCH-STRINGS return-vector &string-r;)</code></term>
88  <listitem><simpara>Return all substrings for all matches found
89    by <function>PCRE:PCRE-EXEC</function>.
90 </simpara></listitem></varlistentry>
91 <varlistentry id="match-string">
92  <term><code>(PCRE:MATCH-STRING return-vector which
93    &string-r; &optional-amp; &pattern-r;)</code></term>
94  <listitem><simpara>Return the substring that matches the given sub-pattern.
95    If <replaceable>which</replaceable> is a name of the sub-pattern (as
96    opposed to its number), &pattern-r; must be supplied.
97 </simpara></listitem></varlistentry>
98 <varlistentry id="pcre-matcher">
99  <term><code>(PCRE:PCRE-MATCHER &pattern-r;)</code></term>
100  <listitem><simpara>A valid value for &apropos-matcher;.
101 </simpara></listitem></varlistentry>
102</variablelist>
103</section>
104