#include <pcre2.h>
int pcre2_substring_nametable_scan(const pcre2_code *code, PCRE2_SPTR name, PCRE2_SPTR *first, PCRE2_SPTR *last);
This convenience function finds, for a compiled pattern, the first and last entries for a given name in the table that translates capture group names into numbers.
code Compiled regular expression
name Name whose entries required
first Where to return a pointer to the first entry
last Where to return a pointer to the last entry
When the name is found in the table, if first is NULL, the function returns a group number, but if there is more than one matching entry, it is not defined which one. Otherwise, when both pointers have been set, the yield of the function is the length of each entry in code units. If the name is not found, PCRE2_ERROR_NOSUBSTRING is returned.
There is a complete description of the PCRE2 native API, including the format of the table entries, in the pcre2api page, and a description of the POSIX API in the pcre2posix page.