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

# pcre\_copy\_substring(3)

Perl-compatible regular expressions

## NAME

PCRE - Perl-compatible regular expressions

## SYNOPSIS

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

```
int pcre_copy_substring(const char *subject, int *ovector,
     int stringcount, int stringnumber, char *buffer,
     int buffersize);

int pcre16_copy_substring(PCRE_SPTR16 subject, int *ovector,
     int stringcount, int stringnumber, PCRE_UCHAR16 *buffer,
     int buffersize);

int pcre32_copy_substring(PCRE_SPTR32 subject, int *ovector,
     int stringcount, int stringnumber, PCRE_UCHAR32 *buffer,
     int buffersize);
```

## DESCRIPTION

This is a convenience function for extracting a captured substring into a given buffer. 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()**\
   *stringnumber*  Number of the required substring\
   *buffer*        Buffer to receive the string\
   *buffersize*    Size of buffer

The yield is the length of the string, PCRE\_ERROR\_NOMEMORY if the buffer was too small, or PCRE\_ERROR\_NOSUBSTRING if the string number is invalid.

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.
