title: Regular Expression: Match to (aa|bb) (cc)?
body: <p>My regular expression needs to be able to find the strings:</p>
  
  <ol>
  <li>Visual Studio 2008</li>
  <li>Visual Studio Express 2008</li>
  <li>Visual Basic 2008</li>
  <li>Visual Basic Express 2008</li>
  <li>Visual C++ 2008</li>
  <li>Visual C++ Express 2008</li>
  </ol>
  
  <p>and a host of other similar variants, to be replaced with this one single string</p>
  
  <blockquote>
    <p>Visual Studio 2005</p>
  </blockquote>
  
  <p>I tried "Visual (Basic|C++|Studio) (Express)? 2008", but it is not working. Any ideas?</p>
  
  <p><strong><em>Edit</strong>:
  Now I have tried "Visual (Basic)|(C++)|(Studio) (Express )?2008", but the replaced line becomes "Visual Studio 2005 Express 2008" for the input "Visual Basic Express 2008".</em> </p>