.TH PCRE2_SUBSTRING_LIST_GET 3 "21 October 2014" "PCRE2 10.00"
.SH NAME
PCRE2 - Perl-compatible regular expressions (revised API)
.SH SYNOPSIS
.rs
.sp
.B #include <pcre2.h>
.PP
.nf
.B int pcre2_substring_list_get(pcre2_match_data *\fImatch_data\fP,
.B "  PCRE2_UCHAR ***\fIlistptr\fP, PCRE2_SIZE **\fIlengthsptr\fP);
.fi
.
.SH DESCRIPTION
.rs
.sp
This is a convenience function for extracting all the captured substrings after
a pattern match. It builds a list of pointers to the strings, and (optionally)
a second list that contains their lengths (in code units), excluding a
terminating zero that is added to each of them. All this is done in a single
block of memory that is obtained using the same memory allocation function that
was used to get the match data block. The convenience function
\fBpcre2_substring_list_free()\fP can be used to free it when it is no longer
needed. The arguments are:
.sp
  \fImatch_data\fP    The match data block
  \fIlistptr\fP       Where to put a pointer to the list
  \fIlengthsptr\fP    Where to put a pointer to the lengths, or NULL
.sp
A pointer to a list of pointers is put in the variable whose address is in
\fIlistptr\fP. The list is terminated by a NULL pointer. If \fIlengthsptr\fP is
not NULL, a matching list of lengths is created, and its address is placed in
\fIlengthsptr\fP. The yield of the function is zero on success or
PCRE2_ERROR_NOMEMORY if sufficient memory could not be obtained.
.P
There is a complete description of the PCRE2 native API in the
.\" HREF
\fBpcre2api\fP
.\"
page and a description of the POSIX API in the
.\" HREF
\fBpcre2posix\fP
.\"
page.