public function analyze()
{
// Using default configuration
$this->atomFunctionIs('\\preg_match_all')->outIs('ARGUMENTS')->noChildWithRank('ARGUMENT', 3)->outWithRank('ARGUMENT', 2)->savePropertyAs('code', 'r')->inIs('ARGUMENT')->inIs('ARGUMENTS')->nextSiblings()->atomIs('Foreach')->outIs('SOURCE')->atomIs('Array')->outIs('VARIABLE')->samePropertyAs('code', 'r')->inIs('VARIABLE')->inIs('SOURCE')->outIs('VALUE')->atomIs('Keyvalue')->outIs('KEY')->savePropertyAs('code', 'k')->inIs('KEY')->inIs('VALUE')->outIs('BLOCK')->atomInside('Array')->outIs('VARIABLE')->outIs('VARIABLE')->samePropertyAs('code', 'r')->inIs('VARIABLE')->inIs('VARIABLE')->outIs('INDEX')->samePropertyAs('code', 'k')->back('first');
$this->prepareQuery();
// Using explicit configuration
$this->atomFunctionIs('\\preg_match_all')->outIs('ARGUMENTS')->outWithRank('ARGUMENT', 3)->atomIs(array('Identifier', 'Nsname'))->fullnspathIs('\\preg_pattern_order')->inIs('ARGUMENT')->outWithRank('ARGUMENT', 2)->savePropertyAs('code', 'r')->inIs('ARGUMENT')->inIs('ARGUMENTS')->nextSiblings()->atomIs('Foreach')->outIs('SOURCE')->atomIs('Array')->outIs('VARIABLE')->samePropertyAs('code', 'r')->inIs('VARIABLE')->inIs('SOURCE')->outIs('VALUE')->atomIs('Keyvalue')->outIs('KEY')->savePropertyAs('code', 'k')->inIs('KEY')->inIs('VALUE')->outIs('BLOCK')->atomInside('Array')->outIs('VARIABLE')->outIs('VARIABLE')->samePropertyAs('code', 'r')->inIs('VARIABLE')->inIs('VARIABLE')->outIs('INDEX')->samePropertyAs('code', 'k')->back('first');
$this->prepareQuery();
}