| 223 |
* * |
* * |
| 224 |
* If the previous match WAS for an empty string, we can't do that, as it * |
* If the previous match WAS for an empty string, we can't do that, as it * |
| 225 |
* would lead to an infinite loop. Instead, a special call of pcre_exec() * |
* would lead to an infinite loop. Instead, a special call of pcre_exec() * |
| 226 |
* is made with the PCRE_NOTEMPTY and PCRE_ANCHORED flags set. The first * |
* is made with the PCRE_NOTEMPTY_ATSTART and PCRE_ANCHORED flags set. * |
| 227 |
* of these tells PCRE that an empty string is not a valid match; other * |
* The first of these tells PCRE that an empty string at the start of the * |
| 228 |
* possibilities must be tried. The second flag restricts PCRE to one * |
* subject is not a valid match; other possibilities must be tried. The * |
| 229 |
* match attempt at the initial string position. If this match succeeds, * |
* second flag restricts PCRE to one match attempt at the initial string * |
| 230 |
* an alternative to the empty string match has been found, and we can * |
* position. If this match succeeds, an alternative to the empty string * |
| 231 |
* proceed round the loop. * |
* match has been found, and we can proceed round the loop. * |
| 232 |
*************************************************************************/ |
*************************************************************************/ |
| 233 |
|
|
| 234 |
if (!find_all) |
if (!find_all) |
| 251 |
if (ovector[0] == ovector[1]) |
if (ovector[0] == ovector[1]) |
| 252 |
{ |
{ |
| 253 |
if (ovector[0] == subject_length) break; |
if (ovector[0] == subject_length) break; |
| 254 |
options = PCRE_NOTEMPTY | PCRE_ANCHORED; |
options = PCRE_NOTEMPTY_ATSTART | PCRE_ANCHORED; |
| 255 |
} |
} |
| 256 |
|
|
| 257 |
/* Run the next matching operation */ |
/* Run the next matching operation */ |