code: protected function createRule($pattern, $prefix, $action)
      {
          $verbs = 'GET|HEAD|POST|PUT|PATCH|DELETE|OPTIONS';
          if (preg_match("/^((?:($verbs),)*($verbs))(?:\\s+(.*))?$/", $pattern, $matches)) {
              $verbs = explode(',', $matches[1]);
              $pattern = isset($matches[4]) ? $matches[4] : '';
          } else {
              $verbs = [];
          }
  
          $config = $this->ruleConfig;
          $config['verb'] = $verbs;
          $config['pattern'] = rtrim($prefix . '/' . strtr($pattern, $this->tokens), '/');
          $config['route'] = $action;
          if (!empty($verbs) && !in_array('GET', $verbs)) {
              $config['mode'] = WebUrlRule::PARSING_ONLY;
          }
          $config['suffix'] = $this->suffix;
  
          return Yii::createObject($config);
      }
docs: Creates a URL rule using the given pattern and action.
  @param string $pattern
  @param string $prefix
  @param string $action
  @return UrlRuleInterface