PCRE\_GET\_SUBSTRING\_LIST(3) Library Functions Manual PCRE\_GET\_SUBSTRING\_LIST(3)

# [NAME](#NAME)

PCRE - Perl-compatible regular expressions

# [SYNOPSIS](#SYNOPSIS)

**#include &lt;pcre.h&gt;**

```
int pcre_get_substring_list(const char *subject,
     int *ovector, int stringcount, const char ***listptr);

int pcre16_get_substring_list(PCRE_SPTR16 subject,
     int *ovector, int stringcount, PCRE_SPTR16 **listptr);

int pcre32_get_substring_list(PCRE_SPTR32 subject,
     int *ovector, int stringcount, PCRE_SPTR32 **listptr);
```

# [DESCRIPTION](#DESCRIPTION)

This is a convenience function for extracting a list of all the captured substrings. The arguments are:

*subject* Subject that has been successfully matched  
*ovector* Offset vector that **pcre\[16|32]\_exec** used  
*stringcount* Value returned by **pcre\[16|32]\_exec**  
*listptr* Where to put a pointer to the list

The memory in which the substrings and the list are placed is obtained by calling **pcre\[16|32]\_malloc()**. The convenience function **pcre\[16|32]\_free\_substring\_list()** can be used to free it when it is no longer needed. A pointer to a list of pointers is put in the variable whose address is in *listptr*. The list is terminated by a NULL pointer. The yield of the function is zero on success or PCRE\_ERROR\_NOMEMORY if sufficient memory could not be obtained.

There is a complete description of the PCRE native API in the **pcreapi** page and a description of the POSIX API in the **pcreposix** page.

24 June 2012 PCRE 8.30

---

Document: pcre32_get_substring_list(3) from pcre 8.45-r11 (Chainguard OS)
Source: https://downloads.sourceforge.net/project/pcre/pcre/8.45/pcre-8.45.tar.bz2
