#include #include void *alloc_huge(size_t n, int c); int main() { size_t len = (1ULL<<32) + 65536; char *h = alloc_huge(len, 'a'); h[len-100] = 'b'; h[len-1] = 0; regex_t re; regmatch_t rm; regcomp(&re, "b", REG_EXTENDED); int ret = regexec(&re, h, 1, &rm, 0); printf("%d %zd %zd\n", ret, rm.rm_so, rm.rm_eo); }