Lines Matching defs:rx

1231     register REGEXP *rx = PM_GETRE(pm);
1256 RX_MATCH_UTF8_set(rx, DO_UTF8(TARG));
1267 if (!rx->prelen && PL_curpm) {
1269 rx = PM_GETRE(pm);
1272 if (rx->minlen > (I32)len)
1279 rx->startp[0] = -1;
1283 if (!(rx->reganch & ROPT_GPOS_SEEN))
1284 rx->endp[0] = rx->startp[0] = mg->mg_len;
1285 else if (rx->reganch & ROPT_ANCH_GPOS) {
1287 rx->endp[0] = rx->startp[0] = mg->mg_len;
1294 if ((!global && rx->nparens)
1306 if (global && rx->startp[0] != -1) {
1307 t = s = rx->endp[0] + truebase;
1308 if ((s + rx->minlen) > strend)
1313 if (rx->reganch & RE_USE_INTUIT &&
1314 DO_UTF8(TARG) == ((rx->reganch & ROPT_UTF8) != 0)) {
1316 s = CALLREG_INTUIT_START(aTHX_ rx, TARG, s, strend, r_flags, NULL);
1320 if ( (rx->reganch & ROPT_CHECK_ALL)
1322 && ((rx->reganch & ROPT_NOSCAN)
1323 || !((rx->reganch & RE_INTUIT_TAIL)
1328 if (CALLREGEXEC(aTHX_ rx, s, strend, truebase, minmatch, TARG, NULL, r_flags))
1341 RX_MATCH_TAINTED_on(rx);
1342 TAINT_IF(RX_MATCH_TAINTED(rx));
1346 nparens = rx->nparens;
1357 if ((rx->startp[i] != -1) && rx->endp[i] != -1 ) {
1358 len = rx->endp[i] - rx->startp[i];
1359 s = rx->startp[i] + truebase;
1360 if (rx->endp[i] < 0 || rx->startp[i] < 0 ||
1377 if (rx->startp[0] != -1) {
1378 mg->mg_len = rx->endp[0];
1379 if (rx->startp[0] == rx->endp[0])
1385 had_zerolen = (rx->startp[0] != -1
1386 && rx->startp[0] == rx->endp[0]);
1405 if (rx->startp[0] != -1) {
1406 mg->mg_len = rx->endp[0];
1407 if (rx->startp[0] == rx->endp[0])
1419 RX_MATCH_TAINTED_on(rx);
1420 TAINT_IF(RX_MATCH_TAINTED(rx));
1424 if (RX_MATCH_COPIED(rx))
1425 Safefree(rx->subbeg);
1426 RX_MATCH_COPIED_off(rx);
1427 rx->subbeg = Nullch;
1429 rx->subbeg = truebase;
1430 rx->startp[0] = s - truebase;
1431 if (RX_MATCH_UTF8(rx)) {
1432 char *t = (char*)utf8_hop((U8*)s, rx->minlen);
1433 rx->endp[0] = t - truebase;
1436 rx->endp[0] = s - truebase + rx->minlen;
1438 rx->sublen = strend - truebase;
1444 rx->subbeg = savepvn(t, strend - t);
1445 rx->sublen = strend - t;
1446 RX_MATCH_COPIED_on(rx);
1447 off = rx->startp[0] = s - t;
1448 rx->endp[0] = off + rx->minlen;
1451 rx->startp[0] = s - truebase;
1452 rx->endp[0] = s - truebase + rx->minlen;
1454 rx->nparens = rx->lastparen = rx->lastcloseparen = 0; /* used by @-, @+, and $^N */
1976 register REGEXP *rx = PM_GETRE(pm);
2010 RX_MATCH_UTF8_set(rx, DO_UTF8(TARG));
2017 slen = RX_MATCH_UTF8(rx) ? utf8_length((U8*)s, (U8*)strend) : len;
2022 if (!rx->prelen && PL_curpm) {
2024 rx = PM_GETRE(pm);
2026 r_flags = (rx->nparens || SvTEMP(TARG) || PL_sawampersand)
2035 if (rx->reganch & RE_USE_INTUIT) {
2037 s = CALLREG_INTUIT_START(aTHX_ rx, TARG, s, strend, r_flags, NULL);
2042 /* if ( (rx->reganch & ROPT_CHECK_ALL)
2044 && ((rx->reganch & ROPT_NOSCAN)
2045 || !((rx->reganch & RE_INTUIT_TAIL)
2078 if (c && (I32)clen <= rx->minlen && (once || !(r_flags & REXEC_COPY_STR))
2079 && !(rx->reganch & ROPT_LOOKBEHIND_SEEN)
2081 if (!CALLREGEXEC(aTHX_ rx, s, strend, orig, 0, TARG, NULL,
2098 rxtainted |= RX_MATCH_TAINTED(rx);
2099 m = orig + rx->startp[0];
2100 d = orig + rx->endp[0];
2142 rxtainted |= RX_MATCH_TAINTED(rx);
2143 m = rx->startp[0] + orig;
2154 s = rx->endp[0] + orig;
2155 } while (CALLREGEXEC(aTHX_ rx, s, strend, orig, s == m,
2182 if (CALLREGEXEC(aTHX_ rx, s, strend, orig, 0, TARG, NULL,
2190 rxtainted |= RX_MATCH_TAINTED(rx);
2199 ReREFCNT_inc(rx);
2207 rxtainted |= RX_MATCH_TAINTED(rx);
2208 if (RX_MATCH_COPIED(rx) && rx->subbeg != orig) {
2211 orig = rx->subbeg;
2215 m = rx->startp[0] + orig;
2220 s = rx->endp[0] + orig;
2225 } while (CALLREGEXEC(aTHX_ rx, s, strend, orig, s == m,