code: protected function processing(): void
      {
          $this->value = \preg_replace_callback(
              '~\<(?<key>' . $this->defaultRegex . '+):(?<value>.+?)>~',
              function (array $matches) {
  
                  if (!empty($this->regex[$matches['key']])) {
                      throw new Runtime(\sprintf(
                          'duplicate in registry key `%s` for path `%s`',
                          $matches['key'],
                          $this->value
                      ));
                  }
  
                  if (!empty($matches['value'])) {
                      $this->regex[$matches['key']] = $matches['value'];
                  }
  
                  return '<' . $matches['key'] . '>';
              },
              $this->value
          );
      }
docs: processing:
  path: '/(<lang:\w+>)' -> '/(<lang>)'
  re: [] -> ['lang' => '\w+']
  
  if attr exists -> throws