assert($s->matchGroups() === array(0 => '0')); assert($s->scan('/(?P<one>\\d)\\d{2}.(\\d(\\d))/') === '123456'); assert($s->matchGroup(0) === '123456'); assert($s->matchGroup('one') === '1'); assert($s->matchGroup(2) === '56'); assert($s->matchGroup(3) === '6'); assert($s->matchPos() === 1); assert($s->pos() === 7); $s->unscan(); //repeat assert($s->pos() === 1); assert($s->match() === '0'); assert($s->matchGroup(0) === '0'); assert($s->matchGroups() === array(0 => '0')); // test check and match_* functions the same data as we just used for scan assert($s->check('/(?P<one>\\d)\\d{2}.(\\d(\\d))/') === '123456'); assert($s->matchGroup(0) === '123456'); assert($s->matchGroup('one') === '1'); assert($s->matchGroup(2) === '56'); assert($s->matchGroup(3) === '6'); assert($s->matchPos() === 1); assert($s->pos() === 1); // but check pos hasn't moved. $s->check('/\\d+/'); assert($s->match() === '123456789'); $s->unscan(); //repeat assert($s->pos() === 1); assert($s->matchGroup(0) === '123456'); assert($s->matchGroup('one') === '1'); assert($s->matchGroup(2) === '56');