26#define PCRE2_CODE_UNIT_WIDTH 8
40#define REGEX_MAX_GROUPS 64
63#define REGEX_FLAG_NONE (0u)
64#define REGEX_FLAG_CASELESS (PCRE2_CASELESS)
65#define REGEX_FLAG_MULTILINE (PCRE2_MULTILINE)
66#define REGEX_FLAG_DOTALL (PCRE2_DOTALL)
67#define REGEX_FLAG_EXTENDED (PCRE2_EXTENDED)
68#define REGEX_FLAG_UTF (PCRE2_UTF)
69#define REGEX_FLAG_UCP (PCRE2_UCP)
70#define REGEX_FLAG_UNGREEDY (PCRE2_UNGREEDY)
71#define REGEX_FLAG_ANCHORED (PCRE2_ANCHORED)
294 const char* replacement,
char* out_buf,
size_t* out_len);
312 const char* replacement,
char* out_buf,
size_t* out_len);
354 fprintf(stderr,
"%s:%d: regex_compile(\"%s\") failed: %s\n", __FILE__, __LINE__, pattern, errbuf);
363static inline regex_ctx_t* regex_ctx_must_create(
void) {
367 fprintf(stderr,
"%s:%d: regex_ctx_create failed\n", __FILE__, __LINE__);
void regex_iter_free(regex_iter_t *iter)
regex_t * regex_retain(regex_t *re)
struct regex_ctx_s regex_ctx_t
struct regex_iter_s regex_iter_t
uint32_t regex_group_count(const regex_t *re)
const char * regex_pattern(const regex_t *re)
regex_status_t regex_ctx_create(regex_ctx_t **out)
regex_status_t regex_sub(const regex_t *re, regex_ctx_t *ctx, const char *subject, size_t subject_len, const char *replacement, char *out_buf, size_t *out_len)
void regex_strerror(regex_status_t status, char *buf, size_t buf_len)
regex_status_t regex_compile(const char *pattern, regex_flags_t flags, regex_t **out, char *errbuf, size_t errbuf_len)
regex_status_t regex_match(const regex_t *re, regex_ctx_t *ctx, const char *subject, regex_match_t *match)
regex_status_t regex_iter_next(regex_iter_t *iter, regex_match_t *match)
regex_status_t regex_gsub(const regex_t *re, regex_ctx_t *ctx, const char *subject, size_t subject_len, const char *replacement, char *out_buf, size_t *out_len)
regex_status_t regex_exec(const regex_t *re, regex_ctx_t *ctx, const char *subject, size_t len, size_t offset, regex_match_t *match)
void regex_ctx_free(regex_ctx_t *ctx)
bool regex_is_match(const regex_t *re, regex_ctx_t *ctx, const char *subject, size_t len)
void regex_free(regex_t *re)
regex_status_t regex_iter_init(regex_t *re, regex_ctx_t *ctx, const char *subject, size_t len, regex_iter_t **out)