title: Why do I get unexpected token?
body: <p>I am trying to search for <code>.c</code>, <code>.cpp</code> or <code>.h</code> files in a text file contains list of files.  However, when I have problems when I ran:</p>
  
  <pre><code>$ grep -sr ^.*\.(c|cpp|h)$ .
  bash: syntax error near unexpected token `('
  </code></pre>