public function capture(Text $text): array {
    preg_match_all($this->raw, (string)$text, $matches, PREG_SET_ORDER);

    foreach($matches as &$match) {
      array_shift($match);

      $match = $text->fromArray($match);
    }

    return $matches;
  }