title: How to pass `noconstant` or other options from wrapper program to inside `regress` call
body: <p>I would like to pass the <code>noconstant</code> option from a wrapper program to an inside <code>regress</code> call. The following solution works, but it seems particularly janky and not extensible if I would like to pass several options.</p>
  
  <pre><code>webuse grunfeld, clear
  
  capture program drop regress_wrapper
  program define regress_wrapper
      version 11.2
      syntax varlist(min=2 numeric) [if] [in] ///
          [, noconstant(string)]
      tokenize `varlist'
      local y `1'
      macro shift
      local x `*'
      regress `y' `x', `noconstant'
  end    
  
  regress_wrapper invest mvalue kstock
  regress_wrapper invest mvalue kstock, noconstant(noconstant)
  </code></pre>
  
  <p>I thought that something more like the following would work, but it doesn't pass the <code>noconstant</code> option.</p>
  
  <pre><code>capture program drop regress_wrapper
  program define regress_wrapper
      version 11.2
      syntax varlist(min=2 numeric) [if] [in] ///
          [, noconstant]
      tokenize `varlist'
      local y `1'
      macro shift
      local x `*'
      regress `y' `x', `noconstant'
  end    
  
  regress_wrapper invest mvalue kstock
  regress_wrapper invest mvalue kstock, noconstant
  </code></pre>