code: public function configure(array $configuration = null)
      {
          parent::configure($configuration);
  
          $tagsWithNameToAlign = array_intersect($this->configuration['tags'], self::$tagsWithName);
          $tagsWithMethodSignatureToAlign = array_intersect($this->configuration['tags'], self::$tagsWithMethodSignature);
          $tagsWithoutNameToAlign = array_diff($this->configuration['tags'], $tagsWithNameToAlign, $tagsWithMethodSignatureToAlign);
          $types = [];
  
          $indent = '(?P<indent>(?: {2}|\t)*)';
          // e.g. @param <hint> <$var>
          if (!empty($tagsWithNameToAlign)) {
              $types[] = '(?P<tag>'.implode('|', $tagsWithNameToAlign).')\s+(?P<hint>[^$]+?)\s+(?P<var>(?:&|\.{3})?\$[^\s]+)';
          }
  
          // e.g. @return <hint>
          if (!empty($tagsWithoutNameToAlign)) {
              $types[] = '(?P<tag2>'.implode('|', $tagsWithoutNameToAlign).')\s+(?P<hint2>[^\s]+?)';
          }
  
          // e.g. @method <hint> <signature>
          if (!empty($tagsWithMethodSignatureToAlign)) {
              $types[] = '(?P<tag3>'.implode('|', $tagsWithMethodSignatureToAlign).')(\s+(?P<hint3>[^\s(]+)|)\s+(?P<signature>.+\))';
          }
  
          // optional <desc>
          $desc = '(?:\s+(?P<desc>\V*))';
  
          $this->regex = '/^'.$indent.' \* @(?:'.implode('|', $types).')'.$desc.'\s*$/u';
          $this->regexCommentLine = '/^'.$indent.' \*(?! @)(?:\s+(?P<desc>\V+))(?<!\*\/)\r?$/u';
          $this->align = $this->configuration['align'];
      }
docs: {@inheritdoc}