It should be
"Visual (Basic|C\+\+|Studio)( Express)? 2008"
>>> import re
>>> repl = 'Visual Studio 2005'
>>> regexp = re.compile('Visual (Studio|Basic|C\+\+)( Express)? 2008')
>>> test1 = 'Visual Studio 2008'
>>> test2 = 'Visual Studio Express 2008'
>>> test3 = 'Visual C++ Express 2008'
>>> test4 = 'Visual C++ Express 1008'
>>> re.sub(regexp,repl,test1)
'Visual Studio 2005'
>>> re.sub(regexp,repl,test2)
'Visual Studio 2005'
>>> re.sub(regexp,repl,test3)
'Visual Studio 2005'
>>> re.sub(regexp,repl,test4)
'Visual C++ Express 1008'