---
name: "pcre32_get_substring_list"
section: "3"
platform: "linux"
package: "pcre"
version: "8.45-5"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pcre_get_substring_list"
---

# pcre32\_get\_substring\_list(3)

Perl-compatible regular expressions

Part of [pcre\_get\_substring\_list(3)](/pcre_get_substring_list/3.md).

## NAME

PCRE - Perl-compatible regular expressions

## SYNOPSIS

**#include \<pcre.h\>**

```
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

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.
