<?php

$array = array('foo', 'bar', 'baz');
$iterator = new ArrayIterator($array);
$regexIterator = new RegexIterator($iterator, "/f/");
var_dump($regexIterator->getMode() === RegexIterator::MATCH);
$regexIterator->setMode(RegexIterator::MATCH);
var_dump($regexIterator->getMode() === RegexIterator::MATCH);
$regexIterator->setMode(RegexIterator::GET_MATCH);
var_dump($regexIterator->getMode() === RegexIterator::GET_MATCH);
$regexIterator->setMode(RegexIterator::ALL_MATCHES);
var_dump($regexIterator->getMode() === RegexIterator::ALL_MATCHES);
$regexIterator->setMode(RegexIterator::SPLIT);
var_dump($regexIterator->getMode() === RegexIterator::SPLIT);
<?php

$data = array('Frutto: Mela', 'Frutto: Pera', 'Frutto: Banana', 'Verdura: Insalata');
$iterator = new RegexIterator(new ArrayIterator($data), '/^Frutto: /');
print_r(iterator_to_array($iterator));
$iterator->setMode(RegexIterator::REPLACE);
print_r(iterator_to_array($iterator));
$iterator = new RegexIterator(new ArrayIterator($data), '/(^Frutto): (.*)/');
$iterator->setMode(RegexIterator::REPLACE);
$iterator->replacement = '$2: $1';
print_r(iterator_to_array($iterator));
<?php

$array = array('foo', 'bar', 'baz');
$regexIterator = new RegexIterator(new ArrayIterator($array), "/f/");
var_dump($regexIterator->getMode());
try {
    $regexIterator->setMode(7);
} catch (InvalidArgumentException $e) {
    var_dump($e->getMessage());
    var_dump($e->getCode());
}
$regexIterator->setMode('foo');