assert($out === array(0 => 0, 1 => array(0 => '01'))); $s->posShift(2); $out = $s->getNext(array('/\\d+/', '/\\s+/')); assert($out === array(0 => 2, 1 => array(0 => ' '))); $s->posShift(1); $out = $s->getNext(array('/\\d+/', '/\\s+/')); assert($out === array(0 => 3, 1 => array(0 => '23'))); $s->posShift(2); // note we've skipped over the ; $out = $s->getNext(array('/\\d+/', '/\\s+/')); assert($out === array(0 => 6, 1 => array(0 => '45'))); $s->posShift(3); $out = $s->getNext(array('/\\d+/', '/\\s+/')); assert($out === array(0 => -1, 1 => null)); $s->reset(); $out = $s->getNextStrpos(array('1', ';')); assert($out === array(0 => 1, 1 => '1')); $s->posShift(2); $out = $s->getNextStrpos(array('1', ';')); assert($out === array(0 => 5, 1 => ';')); $s->pos(6); $out = $s->getNextStrpos(array('1', ';')); assert($out === array(-1, null)); $s->reset(); $s->string('0123'); $rules = array('one' => '/1/', 'zero' => '/0/', 'digit' => '/\\d+/'); $out = $s->getNextNamed($rules); assert($out === array('zero', 0, array('0'))); $s->posShift(1); $out = $s->getNextNamed($rules); assert($out === array('one', 1, array('1')));