protected function reduce($raw)
    {
        if ($action = $this->regexes[$this->mode->getCurrent()]->match($raw, $match)) {
            $unparsed_character_count = strpos($raw, $match);
            $unparsed                 = substr($raw, 0, $unparsed_character_count);
            $raw                      = substr($raw, $unparsed_character_count + strlen($match));

            return array($raw, $unparsed, $match, $action);
        }

        return true;
    }