--- /dev/null
+<html>
+<head>
+<title>pcre2_substitute specification</title>
+</head>
+<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
+<h1>pcre2_substitute man page</h1>
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>
+<p>
+This page is part of the PCRE2 HTML documentation. It was generated
+automatically from the original man page. If there is any nonsense in it,
+please consult the man page, in case the conversion went wrong.
+<br>
+<br><b>
+SYNOPSIS
+</b><br>
+<P>
+<b>#include <pcre2.h></b>
+</P>
+<P>
+<b>int pcre2_substitute(const pcre2_code *<i>code</i>, PCRE2_SPTR <i>subject</i>,</b>
+<b> PCRE2_SIZE <i>length</i>, PCRE2_SIZE <i>startoffset</i>,</b>
+<b> uint32_t <i>options</i>, pcre2_match_data *<i>match_data</i>,</b>
+<b> pcre2_match_context *<i>mcontext</i>, PCRE2_SPTR <i>replacement</i>,</b>
+<b> PCRE2_SIZE <i>rlength</i>, PCRE2_UCHAR *<i>outputbuffer</i>,</b>
+<b> PCRE2_SIZE *<i>outlengthptr</i>);</b>
+</P>
+<br><b>
+DESCRIPTION
+</b><br>
+<P>
+This function matches a compiled regular expression against a given subject
+string, using a matching algorithm that is similar to Perl's. It then makes a
+copy of the subject, substituting a replacement string for what was matched.
+Its arguments are:
+<pre>
+ <i>code</i> Points to the compiled pattern
+ <i>subject</i> Points to the subject string
+ <i>length</i> Length of the subject string
+ <i>startoffset</i> Offset in the subject at which to start matching
+ <i>options</i> Option bits
+ <i>match_data</i> Points to a match data block, or is NULL
+ <i>mcontext</i> Points to a match context, or is NULL
+ <i>replacement</i> Points to the replacement string
+ <i>rlength</i> Length of the replacement string
+ <i>outputbuffer</i> Points to the output buffer
+ <i>outlengthptr</i> Points to the length of the output buffer
+</pre>
+A match data block is needed only if you want to inspect the data from the
+match that is returned in that block. A match context is needed only if you
+want to:
+<pre>
+ Set up a callout function
+ Set a matching offset limit
+ Change the backtracking match limit
+ Change the backtracking depth limit
+ Set custom memory management in the match context
+</pre>
+The <i>length</i>, <i>startoffset</i> and <i>rlength</i> values are code
+units, not characters, as is the contents of the variable pointed at by
+<i>outlengthptr</i>, which is updated to the actual length of the new string.
+The subject and replacement lengths can be given as PCRE2_ZERO_TERMINATED for
+zero-terminated strings. The options are:
+<pre>
+ PCRE2_ANCHORED Match only at the first position
+ PCRE2_ENDANCHORED Pattern can match only at end of subject
+ PCRE2_NOTBOL Subject is not the beginning of a line
+ PCRE2_NOTEOL Subject is not the end of a line
+ PCRE2_NOTEMPTY An empty string is not a valid match
+ PCRE2_NOTEMPTY_ATSTART An empty string at the start of the subject is not a valid match
+ PCRE2_NO_JIT Do not use JIT matching
+ PCRE2_NO_UTF_CHECK Do not check the subject or replacement for UTF validity (only relevant if
+ PCRE2_UTF was set at compile time)
+ PCRE2_SUBSTITUTE_EXTENDED Do extended replacement processing
+ PCRE2_SUBSTITUTE_GLOBAL Replace all occurrences in the subject
+ PCRE2_SUBSTITUTE_OVERFLOW_LENGTH If overflow, compute needed length
+ PCRE2_SUBSTITUTE_UNKNOWN_UNSET Treat unknown group as unset
+ PCRE2_SUBSTITUTE_UNSET_EMPTY Simple unset insert = empty string
+</pre>
+The function returns the number of substitutions, which may be zero if there
+were no matches. The result can be greater than one only when
+PCRE2_SUBSTITUTE_GLOBAL is set. In the event of an error, a negative error code
+is returned.
+</P>
+<P>
+There is a complete description of the PCRE2 native API in the
+<a href="pcre2api.html"><b>pcre2api</b></a>
+page and a description of the POSIX API in the
+<a href="pcre2posix.html"><b>pcre2posix</b></a>
+page.
+<p>
+Return to the <a href="index.html">PCRE2 index page</a>.
+</p>