title: WP rewrite_rule match is empty (With Exclude Pattern)
body: <p>i am struggline with the WP add_rewrite_rule and love any feedback and assistance.</p>
  <p>my category pages are:</p>
  <ul>
  <li>category/catname1</li>
  <li>category/catname2/</li>
  </ul>
  <p>and my products  pages are:</p>
  <ul>
  <li>category/product/productname1</li>
  <li>category/product/productname2/</li>
  </ul>
  <p>as the default WP rewrite rules  has a conflict with using the same pemalink base for category and product i am trying to  get around this.</p>
  <p>I was able to remove all product category rules and  want to add a new rule  where the URI starts with <strong>'category'</strong> but does not have <strong>'product'</strong> string in it.
  I think i got the rewrite rule right and it catches it, however  the <strong>$matches[1]</strong> is always empty and not forwarding the  actual category name.</p>
  <pre><code>add_action('init', function(){
      add_filter('product_cat_rewrite_rules', '__return_empty_array');
      
      add_rewrite_rule('category\/(?!product).*\/?$', 'index.php?tester=$matches[1]', 'top');
      
  
      
  }, 10, 0);
  
  
  function custom_rewrite_tag( $vars ) {
  add_rewrite_tag( '%tester%', '([^&amp;]+)');
  }
  add_action( 'init', 'custom_rewrite_tag');
  
  </code></pre>
  <p>When i print out the query_vars for that page i alwasy get:
  <code>Array ( [tester] =&gt; ) </code></p>