Home | History | Annotate | Download | only in src

Lines Matching defs:eptr

134   eptr        pointer into the subject
145 match_ref(PCRE2_SIZE offset, PCRE2_SIZE offset_top, register PCRE2_SPTR eptr,
154 PCRE2_SPTR eptr_start = eptr;
193 if (eptr >= mb->end_subject) return 1; /* Partial match */
194 GETCHARINC(c, eptr);
217 if (eptr >= mb->end_subject) return 1; /* Partial match */
218 cc = UCHAR21TEST(eptr);
223 eptr++;
235 if (eptr >= mb->end_subject) return 1; /* Partial match */
236 if (UCHAR21INCTEST(p) != UCHAR21INCTEST(eptr)) return -1; /*No match */
240 *lengthptr = eptr - eptr_start;
428 match(REGISTER PCRE2_SPTR eptr, REGISTER PCRE2_SPTR ecode, PCRE2_SPTR mstart,
454 eptr
460 eptrb pointer to chain of blocks containing eptr at start of
471 op_recurse_ovecsave(REGISTER PCRE2_SPTR eptr, PCRE2_SPTR callpat,
491 rrc = match(eptr, callpat + PRIV(OP_lengths)[*callpat], mstart, offset_top,
540 if (mb->partial != 0 && eptr >= mb->end_subject && \
541 eptr > mb->start_used_ptr) \
548 if (mb->partial != 0 && eptr > mb->start_used_ptr) \
561 eptr pointer to current character in subject
567 eptrb pointer to chain of blocks containing eptr at start of
579 match(REGISTER PCRE2_SPTR eptr, REGISTER PCRE2_SPTR ecode, PCRE2_SPTR mstart,
607 frame->Xeptr = eptr;
620 #define eptr frame->Xeptr
787 newptrb.epb_saved_eptr = eptr;
805 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top, mb,
820 mb->start_match_ptr = eptr;
829 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, mb,
835 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, mb,
843 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top, mb,
851 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, mb,
854 mb->start_match_ptr = eptr; /* Pass back current position */
872 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top, mb,
889 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, mb,
898 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode] + ecode[1], offset_top,
921 saved_eptr = eptr;
925 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, mb, eptrb, RM64);
955 eptr = mb->end_match_ptr;
962 if (*ecode == OP_KET || eptr == saved_eptr)
974 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, mb, eptrb, RM65);
981 RMATCH(eptr, prev, offset_top, mb, eptrb, RM66);
1015 mb->ovector[mb->offset_end - number] = eptr - mb->start_subject;
1020 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, mb,
1110 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, mb, eptrb,
1183 mb->ovector[mb->offset_end - number] = eptr - mb->start_subject;
1185 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, mb,
1194 if (eptr == mb->end_match_ptr) /* Matched an empty string */
1199 eptr = mb->end_match_ptr;
1251 RMATCH(eptr, ecode + PRIV(OP_lengths)[*ecode], offset_top, mb,
1259 if (eptr == mb->end_match_ptr) /* Matched an empty string */
1264 eptr = mb->end_match_ptr;
1329 cb.current_position = (PCRE2_SIZE)(eptr - mb->start_subject);
1424 RMATCH(eptr, ecode, offset_top, mb, NULL, RM3);
1475 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM49);
1498 mb->ovector[offset+1] = eptr - mb->start_subject;
1520 if (eptr > mb->last_used_ptr) mb->last_used_ptr = eptr;
1530 if (eptr == mstart && op != OP_ASSERT_ACCEPT &&
1539 mb->end_match_ptr = eptr; /* Record where we ended */
1574 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, mb, NULL, RM4);
1645 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, mb, NULL, RM5);
1713 if (eptr <= mb->start_subject) RRETURN(MATCH_NOMATCH);
1714 eptr--;
1715 BACKCHAR(eptr);
1724 if (i > eptr - mb->start_subject) RRETURN(MATCH_NOMATCH);
1725 eptr -= i;
1730 if (eptr < mb->start_used_ptr) mb->start_used_ptr = eptr;
1756 cb.current_position = (PCRE2_SIZE)(eptr - mb->start_subject);
1815 if (recno == ri->group_num && eptr == ri->subject_position)
1822 new_recursive.subject_position = eptr;
1838 rrc = op_recurse_ovecsave(eptr, callpat, mstart, offset_top, mb,
1847 eptr = mb->end_match_ptr;
1883 RMATCH(eptr, callpat + PRIV(OP_lengths)[*callpat], offset_top,
1901 eptr = mb->end_match_ptr;
1951 RMATCH(eptr, next_ecode, offset_top, mb, eptrb, RM10);
1960 RMATCH(eptr, next_ecode + 1+LINK_SIZE, offset_top, mb, eptrb, RM11);
2007 mb->end_match_ptr = eptr; /* For ONCE_NC */
2010 if (eptr > mb->last_used_ptr) mb->last_used_ptr = eptr;
2032 mb->end_match_ptr = eptr;
2034 if (eptr > mb->last_used_ptr) mb->last_used_ptr = eptr;
2063 mb->ovector[offset+1] = eptr - mb->start_subject;
2076 mb->end_match_ptr = eptr;
2078 if (eptr > mb->last_used_ptr) mb->last_used_ptr = eptr;
2091 if (*ecode == OP_KET || eptr == saved_eptr)
2095 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, mb, eptrb, RM12);
2112 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, mb, eptrb, RM7);
2116 RMATCH(eptr, prev, offset_top, mb, eptrb, RM8);
2123 RMATCH(eptr, prev, offset_top, mb, eptrb, RM50);
2131 RMATCH(eptr, prev, offset_top, mb, eptrb, RM13);
2136 RMATCH(eptr, ecode + 1 + LINK_SIZE, offset_top, mb, eptrb, RM9);
2149 if ((mb->moptions & PCRE2_NOTBOL) != 0 && eptr == mb->start_subject)
2155 if (eptr != mb->start_subject) RRETURN(MATCH_NOMATCH);
2163 if ((mb->moptions & PCRE2_NOTBOL) != 0 && eptr == mb->start_subject)
2165 if (eptr != mb->start_subject &&
2166 ((eptr == mb->end_subject &&
2168 !WAS_NEWLINE(eptr)))
2176 if (eptr != mb->start_subject + mb->start_offset) RRETURN(MATCH_NOMATCH);
2183 mstart = eptr;
2191 if (eptr < mb->end_subject)
2193 if (!IS_NEWLINE(eptr))
2196 eptr + 1 >= mb->end_subject &&
2199 UCHAR21TEST(eptr) == NLBLOCK->nl[0])
2227 if (eptr < mb->end_subject) RRETURN(MATCH_NOMATCH);
2236 if (eptr < mb->end_subject &&
2237 (!IS_NEWLINE(eptr) || eptr != mb->end_subject - mb->nllen))
2240 eptr + 1 >= mb->end_subject &&
2243 UCHAR21TEST(eptr) == NLBLOCK->nl[0])
2273 if (eptr == mb->start_subject) prev_is_word = FALSE; else
2275 PCRE2_SPTR lastptr = eptr - 1;
2293 if (eptr >= mb->end_subject)
2300 eptr + 1;
2303 GETCHAR(c, eptr);
2325 if (eptr == mb->start_subject) prev_is_word = FALSE; else
2327 if (eptr <= mb->start_used_ptr) mb->start_used_ptr = eptr - 1;
2331 c = eptr[-1];
2340 prev_is_word = MAX_255(eptr[-1])
2341 && ((mb->ctypes[eptr[-1]] & ctype_word) != 0);
2346 if (eptr >= mb->end_subject)
2353 if (eptr >= mb->last_used_ptr) mb->last_used_ptr = eptr + 1;
2357 c = *eptr;
2366 cur_is_word = MAX_255(*eptr)
2367 && ((mb->ctypes[*eptr] & ctype_word) != 0);
2383 if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH);
2385 eptr + 1 >= mb->end_subject &&
2388 UCHAR21TEST(eptr) == NLBLOCK->nl[0])
2399 if (eptr >= mb->end_subject) /* DO NOT merge the eptr++ here; it must */
2404 eptr++;
2406 if (utf) ACROSSCHAR(eptr < mb->end_subject, *eptr, eptr++);
2416 if (eptr >= mb->end_subject) /* DO NOT merge the eptr++ here; it must */
2421 eptr++;
2426 if (eptr >= mb->end_subject)
2431 GETCHARINCTEST(c, eptr);
2443 if (eptr >= mb->end_subject)
2448 GETCHARINCTEST(c, eptr);
2460 if (eptr >= mb->end_subject)
2465 GETCHARINCTEST(c, eptr);
2477 if (eptr >= mb->end_subject)
2482 GETCHARINCTEST(c, eptr);
2494 if (eptr >= mb->end_subject)
2499 GETCHARINCTEST(c, eptr);
2511 if (eptr >= mb->end_subject)
2516 GETCHARINCTEST(c, eptr);
2528 if (eptr >= mb->end_subject)
2533 GETCHARINCTEST(c, eptr);
2539 if (eptr >= mb->end_subject)
2543 else if (UCHAR21TEST(eptr) == CHAR_LF) eptr++;
2563 if (eptr >= mb->end_subject)
2568 GETCHARINCTEST(c, eptr);
2578 if (eptr >= mb->end_subject)
2583 GETCHARINCTEST(c, eptr);
2593 if (eptr >= mb->end_subject)
2598 GETCHARINCTEST(c, eptr);
2608 if (eptr >= mb->end_subject)
2613 GETCHARINCTEST(c, eptr);
2628 if (eptr >= mb->end_subject)
2633 GETCHARINCTEST(c, eptr);
2733 if (eptr >= mb->end_subject)
2741 GETCHARINCTEST(c, eptr);
2743 while (eptr < mb->end_subject)
2746 if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
2750 eptr += len;
2823 int rc = match_ref(offset, offset_top, eptr, mb, caseless, &length);
2826 if (rc > 0) eptr = mb->end_subject; /* Partial match */
2831 eptr += length;
2854 address of eptr, so that eptr can be a register variable. */
2859 int rc = match_ref(offset, offset_top, eptr, mb, caseless, &slength);
2862 if (rc > 0) eptr = mb->end_subject; /* Partial match */
2866 eptr += slength;
2882 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM14);
2885 rc = match_ref(offset, offset_top, eptr, mb, caseless, &slength);
2888 if (rc > 0) eptr = mb->end_subject; /* Partial match */
2892 eptr += slength;
2903 pp = eptr;
2909 int rc = match_ref(offset, offset_top, eptr, mb, caseless, &slength);
2913 /* Can't use CHECK_PARTIAL because we don't want to update eptr in
2926 eptr += slength;
2937 while (eptr >= pp)
2939 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM15);
2941 eptr -= length;
2953 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM68);
2955 if (eptr == pp) break; /* Failed after minimal repetition */
2956 eptr = pp;
2961 (void)match_ref(offset, offset_top, eptr, mb, caseless, &slength);
2962 eptr += slength;
3033 if (eptr >= mb->end_subject)
3038 GETCHARINC(c, eptr);
3053 if (eptr >= mb->end_subject)
3058 c = *eptr++;
3085 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM16);
3088 if (eptr >= mb->end_subject)
3093 GETCHARINC(c, eptr);
3108 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM17);
3111 if (eptr >= mb->end_subject)
3116 c = *eptr++;
3134 pp = eptr;
3142 if (eptr >= mb->end_subject)
3147 GETCHARLEN(c, eptr, len);
3154 eptr += len;
3161 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM18);
3163 if (eptr-- == pp) break; /* Stop if tried at original pos */
3164 BACKCHAR(eptr);
3173 if (eptr >= mb->end_subject)
3178 c = *eptr;
3187 eptr++;
3192 while (eptr >= pp)
3194 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM19);
3196 eptr--;
3257 if (eptr >= mb->end_subject)
3262 GETCHARINCTEST(c, eptr);
3278 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM20);
3281 if (eptr >= mb->end_subject)
3286 GETCHARINCTEST(c, eptr);
3296 pp = eptr;
3300 if (eptr >= mb->end_subject)
3306 GETCHARLENTEST(c, eptr, len);
3308 c = *eptr;
3311 eptr += len;
3318 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM21);
3320 if (eptr-- == pp) break; /* Stop if tried at original pos */
3322 if (utf) BACKCHAR(eptr);
3341 if (length > (PCRE2_SIZE)(mb->end_subject - eptr))
3348 if (*ecode++ != UCHAR21INC(eptr)) RRETURN(MATCH_NOMATCH);
3355 if (mb->end_subject - eptr < 1)
3360 if (ecode[1] != *eptr++) RRETURN(MATCH_NOMATCH);
3369 if (eptr >= mb->end_subject)
3389 uint32_t cc = UCHAR21(eptr);
3392 eptr++;
3402 GETCHARINC(dc, eptr);
3423 != TABLE_GET(*eptr, mb->lcc, *eptr)) RRETURN(MATCH_NOMATCH);
3424 eptr++;
3501 until eptr is past the end of the maximum run. If possessive, we are
3533 if (eptr <= mb->end_subject - length &&
3534 memcmp(eptr, charptr, CU2BYTES(length)) == 0) eptr += length;
3536 eptr <= mb->end_subject - oclength &&
3537 memcmp(eptr, occhars, CU2BYTES(oclength)) == 0) eptr += oclength;
3551 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM22);
3554 if (eptr <= mb->end_subject - length &&
3555 memcmp(eptr, charptr, CU2BYTES(length)) == 0) eptr += length;
3557 eptr <= mb->end_subject - oclength &&
3558 memcmp(eptr, occhars, CU2BYTES(oclength)) == 0) eptr += oclength;
3570 pp = eptr;
3573 if (eptr <= mb->end_subject - length &&
3574 memcmp(eptr, charptr, CU2BYTES(length)) == 0) eptr += length;
3576 eptr <= mb->end_subject - oclength &&
3577 memcmp(eptr, occhars, CU2BYTES(oclength)) == 0) eptr += oclength;
3592 if (eptr <= pp) goto TAIL_RECURSE;
3593 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM23);
3595 eptr--;
3596 BACKCHAR(eptr);
3638 if (eptr >= mb->end_subject)
3643 cc = UCHAR21TEST(eptr);
3645 eptr++;
3653 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM24);
3656 if (eptr >= mb->end_subject)
3661 cc = UCHAR21TEST(eptr);
3663 eptr++;
3669 pp = eptr;
3673 if (eptr >= mb->end_subject)
3678 cc = UCHAR21TEST(eptr);
3680 eptr++;
3685 if (eptr == pp) goto TAIL_RECURSE;
3686 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM25);
3687 eptr--;
3700 if (eptr >= mb->end_subject)
3705 if (fc != UCHAR21INCTEST(eptr)) RRETURN(MATCH_NOMATCH);
3714 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM26);
3717 if (eptr >= mb->end_subject)
3722 if (fc != UCHAR21INCTEST(eptr)) RRETURN(MATCH_NOMATCH);
3728 pp = eptr;
3731 if (eptr >= mb->end_subject)
3736 if (fc != UCHAR21TEST(eptr)) break;
3737 eptr++;
3742 if (eptr == pp) goto TAIL_RECURSE;
3743 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM27);
3744 eptr--;
3757 if (eptr >= mb->end_subject)
3769 GETCHARINC(c, eptr);
3788 c = *eptr++;
3896 if (eptr >= mb->end_subject)
3901 GETCHARINC(d, eptr);
3911 if (eptr >= mb->end_subject)
3916 if (fc == *eptr || foc == *eptr) RRETURN(MATCH_NOMATCH);
3917 eptr++;
3931 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM28);
3934 if (eptr >= mb->end_subject)
3939 GETCHARINC(d, eptr);
3949 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM29);
3952 if (eptr >= mb->end_subject)
3957 if (fc == *eptr || foc == *eptr) RRETURN(MATCH_NOMATCH);
3958 eptr++;
3968 pp = eptr;
3977 if (eptr >= mb->end_subject)
3982 GETCHARLEN(d, eptr, len);
3984 eptr += len;
3993 if (eptr <= pp) goto TAIL_RECURSE;
3994 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM30);
3996 eptr--;
3997 BACKCHAR(eptr);
4006 if (eptr >= mb->end_subject)
4011 if (fc == *eptr || foc == *eptr) break;
4012 eptr++;
4017 if (eptr == pp) goto TAIL_RECURSE;
4018 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM31);
4020 eptr--;
4037 if (eptr >= mb->end_subject)
4042 GETCHARINC(d, eptr);
4052 if (eptr >= mb->end_subject)
4057 if (fc == *eptr++) RRETURN(MATCH_NOMATCH);
4071 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM32);
4074 if (eptr >= mb->end_subject)
4079 GETCHARINC(d, eptr);
4089 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM33);
4092 if (eptr >= mb->end_subject)
4097 if (fc == *eptr++) RRETURN(MATCH_NOMATCH);
4107 pp = eptr;
4116 if (eptr >= mb->end_subject)
4121 GETCHARLEN(d, eptr, len);
4123 eptr += len;
4132 if (eptr <= pp) goto TAIL_RECURSE;
4133 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM34);
4135 eptr--;
4136 BACKCHAR(eptr);
4145 if (eptr >= mb->end_subject)
4150 if (fc == *eptr) break;
4151 eptr++;
4156 if (eptr == pp) goto TAIL_RECURSE;
4157 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM35);
4159 eptr--;
4259 if (eptr >= mb->end_subject)
4264 GETCHARINCTEST(c, eptr);
4272 if (eptr >= mb->end_subject)
4277 GETCHARINCTEST(c, eptr);
4289 if (eptr >= mb->end_subject)
4294 GETCHARINCTEST(c, eptr);
4303 if (eptr >= mb->end_subject)
4308 GETCHARINCTEST(c, eptr);
4317 if (eptr >= mb->end_subject)
4322 GETCHARINCTEST(c, eptr);
4332 if (eptr >= mb->end_subject)
4337 GETCHARINCTEST(c, eptr);
4352 if (eptr >= mb->end_subject)
4357 GETCHARINCTEST(c, eptr);
4377 if (eptr >= mb->end_subject)
4382 GETCHARINCTEST(c, eptr);
4394 if (eptr >= mb->end_subject)
4399 GETCHARINCTEST(c, eptr);
4414 if (eptr >= mb->end_subject)
4419 GETCHARINCTEST(c, eptr);
4441 if (eptr >= mb->end_subject)
4449 GETCHARINCTEST(c, eptr);
4451 while (eptr < mb->end_subject)
4454 if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
4458 eptr += len;
4476 if (eptr >= mb->end_subject)
4481 if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH);
4483 eptr + 1 >= mb->end_subject &&
4486 UCHAR21(eptr) == NLBLOCK->nl[0])
4491 eptr++;
4492 ACROSSCHAR(eptr < mb->end_subject, *eptr, eptr++);
4499 if (eptr >= mb->end_subject)
4504 eptr++;
4505 ACROSSCHAR(eptr < mb->end_subject, *eptr, eptr++);
4510 if (eptr > mb->end_subject - min) RRETURN(MATCH_NOMATCH);
4511 eptr += min;
4517 if (eptr >= mb->end_subject)
4522 GETCHARINC(c, eptr);
4528 if (eptr < mb->end_subject && UCHAR21(eptr) == CHAR_LF) eptr++;
4550 if (eptr >= mb->end_subject)
4555 GETCHARINC(c, eptr);
4567 if (eptr >= mb->end_subject)
4572 GETCHARINC(c, eptr);
4584 if (eptr >= mb->end_subject)
4589 GETCHARINC(c, eptr);
4601 if (eptr >= mb->end_subject)
4606 GETCHARINC(c, eptr);
4618 if (eptr >= mb->end_subject)
4623 GETCHARINC(c, eptr);
4633 if (eptr >= mb->end_subject)
4638 cc = UCHAR21(eptr);
4641 eptr++;
4650 if (eptr >= mb->end_subject)
4655 cc = UCHAR21(eptr);
4658 eptr++;
4659 ACROSSCHAR(eptr < mb->end_subject, *eptr, eptr++);
4667 if (eptr >= mb->end_subject)
4672 cc = UCHAR21(eptr);
4675 eptr++;
4684 if (eptr >= mb->end_subject)
4689 cc = UCHAR21(eptr);
4692 eptr++;
4693 ACROSSCHAR(eptr < mb->end_subject, *eptr, eptr++);
4701 if (eptr >= mb->end_subject)
4706 cc = UCHAR21(eptr);
4709 eptr++;
4729 if (eptr >= mb->end_subject)
4734 if (IS_NEWLINE(eptr)) RRETURN(MATCH_NOMATCH);
4736 eptr + 1 >= mb->end_subject &&
4739 *eptr == NLBLOCK->nl[0])
4744 eptr++;
4749 if (eptr > mb->end_subject - min)
4754 eptr += min;
4758 if (eptr > mb->end_subject - min)
4763 eptr += min;
4769 if (eptr >= mb->end_subject)
4774 switch(*eptr++)
4779 if (eptr < mb->end_subject && *eptr == CHAR_LF) eptr++;
4801 if (eptr >= mb->end_subject)
4806 switch(*eptr++)
4821 if (eptr >= mb->end_subject)
4826 switch(*eptr++)
4841 if (eptr >= mb->end_subject)
4846 switch(*eptr++)
4861 if (eptr >= mb->end_subject)
4866 switch(*eptr++)
4881 if (eptr >= mb->end_subject)
4886 if (MAX_255(*eptr) && (mb->ctypes[*eptr] & ctype_digit) != 0)
4888 eptr++;
4895 if (eptr >= mb->end_subject)
4900 if (!MAX_255(*eptr) || (mb->ctypes[*eptr] & ctype_digit) == 0)
4902 eptr++;
4909 if (eptr >= mb->end_subject)
4914 if (MAX_255(*eptr) && (mb->ctypes[*eptr] & ctype_space) != 0)
4916 eptr++;
4923 if (eptr >= mb->end_subject)
4928 if (!MAX_255(*eptr) || (mb->ctypes[*eptr] & ctype_space) == 0)
4930 eptr++;
4937 if (eptr >= mb->end_subject)
4942 if (MAX_255(*eptr) && (mb->ctypes[*eptr] & ctype_word) != 0)
4944 eptr++;
4951 if (eptr >= mb->end_subject)
4956 if (!MAX_255(*eptr) || (mb->ctypes[*eptr] & ctype_word) == 0)
4958 eptr++;
4985 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM36);
4988 if (eptr >= mb->end_subject)
4993 GETCHARINCTEST(c, eptr);
5002 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM37);
5005 if (eptr >= mb->end_subject)
5010 GETCHARINCTEST(c, eptr);
5022 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM38);
5025 if (eptr >= mb->end_subject)
5030 GETCHARINCTEST(c, eptr);
5039 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM39);
5042 if (eptr >= mb->end_subject)
5047 GETCHARINCTEST(c, eptr);
5056 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM40);
5059 if (eptr >= mb->end_subject)
5064 GETCHARINCTEST(c, eptr);
5074 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM59);
5077 if (eptr >= mb->end_subject)
5082 GETCHARINCTEST(c, eptr);
5097 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM61);
5100 if (eptr >= mb->end_subject)
5105 GETCHARINCTEST(c, eptr);
5125 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM62);
5128 if (eptr >= mb->end_subject)
5133 GETCHARINCTEST(c, eptr);
5147 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM67);
5150 if (eptr >= mb->end_subject)
5155 GETCHARINCTEST(c, eptr);
5170 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM60);
5173 if (eptr >= mb->end_subject)
5178 GETCHARINCTEST(c, eptr);
5199 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM41);
5202 if (eptr >= mb->end_subject)
5210 GETCHARINCTEST(c, eptr);
5212 while (eptr < mb->end_subject)
5215 if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
5219 eptr += len;
5233 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM42);
5236 if (eptr >= mb->end_subject)
5241 if (ctype == OP_ANY && IS_NEWLINE(eptr))
5243 GETCHARINC(c, eptr);
5248 eptr >= mb->end_subject &&
5267 if (eptr < mb->end_subject && UCHAR21(eptr) == CHAR_LF) eptr++;
5358 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM43);
5361 if (eptr >= mb->end_subject)
5366 if (ctype == OP_ANY && IS_NEWLINE(eptr))
5368 c = *eptr++;
5373 eptr >= mb->end_subject &&
5392 if (eptr < mb->end_subject && *eptr == CHAR_LF) eptr++;
5496 pp = eptr; /* Remember where we started */
5507 if (eptr >= mb->end_subject)
5512 GETCHARLENTEST(c, eptr, len);
5514 eptr+= len;
5523 if (eptr >= mb->end_subject)
5528 GETCHARLENTEST(c, eptr, len);
5534 eptr+= len;
5542 if (eptr >= mb->end_subject)
5547 GETCHARLENTEST(c, eptr, len);
5549 eptr+= len;
5557 if (eptr >= mb->end_subject)
5562 GETCHARLENTEST(c, eptr, len);
5564 eptr+= len;
5572 if (eptr >= mb->end_subject)
5577 GETCHARLENTEST(c, eptr, len);
5579 eptr+= len;
5588 if (eptr >= mb->end_subject)
5593 GETCHARLENTEST(c, eptr, len);
5597 eptr+= len;
5610 if (eptr >= mb->end_subject)
5615 GETCHARLENTEST(c, eptr, len);
5628 eptr+= len;
5638 if (eptr >= mb->end_subject)
5643 GETCHARLENTEST(c, eptr, len);
5648 eptr+= len;
5657 if (eptr >= mb->end_subject)
5662 GETCHARLENTEST(c, eptr, len);
5671 eptr += len;
5680 if (eptr >= mb->end_subject)
5685 GETCHARLENTEST(c, eptr, len);
5690 eptr += len;
5698 /* eptr is now past the end of the maximum run */
5707 if (eptr <= pp) goto TAIL_RECURSE;
5708 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM44);
5710 eptr--;
5711 if (utf) BACKCHAR(eptr);
5722 if (eptr >= mb->end_subject)
5730 GETCHARINCTEST(c, eptr);
5732 while (eptr < mb->end_subject)
5735 if (!utf) c = *eptr; else { GETCHARLEN(c, eptr, len); }
5739 eptr += len;
5745 /* eptr is now past the end of the maximum run */
5759 if (eptr <= pp) goto TAIL_RECURSE; /* At start of char run */
5760 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM45);
5767 eptr--;
5768 if (!utf) c = *eptr; else
5770 BACKCHAR(eptr);
5771 GETCHAR(c, eptr);
5777 if (eptr <= pp) goto TAIL_RECURSE; /* At start of char run */
5778 fptr = eptr - 1;
5786 eptr = fptr;
5803 if (eptr >= mb->end_subject)
5808 if (IS_NEWLINE(eptr)) break;
5810 eptr + 1 >= mb->end_subject &&
5813 UCHAR21(eptr) == NLBLOCK->nl[0])
5818 eptr++;
5819 ACROSSCHAR(eptr < mb->end_subject, *eptr, eptr++);
5828 if (eptr >= mb->end_subject)
5833 eptr++;
5834 ACROSSCHAR(eptr < mb->end_subject, *eptr, eptr++);
5839 eptr = mb->end_subject; /* Unlimited UTF-8 repeat */
5848 if (c > (uint32_t)(mb->end_subject - eptr))
5850 eptr = mb->end_subject;
5853 else eptr += c;
5860 if (eptr >= mb->end_subject)
5865 GETCHARLEN(c, eptr, len);
5868 if (++eptr >= mb->end_subject) break;
5869 if (UCHAR21(eptr) == CHAR_LF) eptr++;
5881 eptr += len;
5892 if (eptr >= mb->end_subject)
5897 GETCHARLEN(c, eptr, len);
5904 eptr += len;
5914 if (eptr >= mb->end_subject)
5919 GETCHARLEN(c, eptr, len);
5926 eptr += len;
5934 if (eptr >= mb->end_subject)
5939 GETCHARLEN(c, eptr, len);
5941 eptr+= len;
5949 if (eptr >= mb->end_subject)
5954 GETCHARLEN(c, eptr, len);
5956 eptr+= len;
5964 if (eptr >= mb->end_subject)
5969 GETCHARLEN(c, eptr, len);
5971 eptr+= len;
5979 if (eptr >= mb->end_subject)
5984 GETCHARLEN(c, eptr, len);
5986 eptr+= len;
5994 if (eptr >= mb->end_subject)
5999 GETCHARLEN(c, eptr, len);
6001 eptr+= len;
6009 if (eptr >= mb->end_subject)
6014 GETCHARLEN(c, eptr, len);
6016 eptr+= len;
6031 if (eptr <= pp) goto TAIL_RECURSE;
6032 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM46);
6034 eptr--;
6035 BACKCHAR(eptr);
6036 if (ctype == OP_ANYNL && eptr > pp && UCHAR21(eptr) == CHAR_NL &&
6037 UCHAR21(eptr - 1) == CHAR_CR) eptr--;
6049 if (eptr >= mb->end_subject)
6054 if (IS_NEWLINE(eptr)) break;
6056 eptr + 1 >= mb->end_subject &&
6059 *eptr == NLBLOCK->nl[0])
6064 eptr++;
6071 if (c > (uint32_t)(mb->end_subject - eptr))
6073 eptr = mb->end_subject;
6076 else eptr += c;
6082 if (eptr >= mb->end_subject)
6087 c = *eptr;
6090 if (++eptr >= mb->end_subject) break;
6091 if (*eptr == CHAR_LF) eptr++;
6101 eptr++;
6109 if (eptr >= mb->end_subject)
6114 switch(*eptr)
6116 default: eptr++; break;
6130 if (eptr >= mb->end_subject)
6135 switch(*eptr)
6142 eptr++; break;
6151 if (eptr >= mb->end_subject)
6156 switch(*eptr)
6158 default: eptr++; break;
6172 if (eptr >= mb->end_subject)
6177 switch(*eptr)
6184 eptr++; break;
6193 if (eptr >= mb->end_subject)
6198 if (MAX_255(*eptr) && (mb->ctypes[*eptr] & ctype_digit) != 0) break;
6199 eptr++;
6206 if (eptr >= mb->end_subject)
6211 if (!MAX_255(*eptr) || (mb->ctypes[*eptr] & ctype_digit) == 0) break;
6212 eptr++;
6219 if (eptr >= mb->end_subject)
6224 if (MAX_255(*eptr) && (mb->ctypes[*eptr] & ctype_space) != 0) break;
6225 eptr++;
6232 if (eptr >= mb->end_subject)
6237 if (!MAX_255(*eptr) || (mb->ctypes[*eptr] & ctype_space) == 0) break;
6238 eptr++;
6245 if (eptr >= mb->end_subject)
6250 if (MAX_255(*eptr) && (mb->ctypes[*eptr] & ctype_word) != 0) break;
6251 eptr++;
6258 if (eptr >= mb->end_subject)
6263 if (!MAX_255(*eptr) || (mb->ctypes[*eptr] & ctype_word) == 0) break;
6264 eptr++;
6275 if (eptr == pp) goto TAIL_RECURSE;
6276 RMATCH(eptr, ecode, offset_top, mb, eptrb, RM47);
6278 eptr--;
6279 if (ctype == OP_ANYNL && eptr > pp && *eptr == CHAR_LF &&
6280 eptr[-1] == CHAR_CR) eptr--;
6342 #undef eptr