Use the \b operator to match word boundaries, like this
\bcolor\b
And you can create a single saved search to do all your replacing if you are willing to use function mode, something like this
\bcolor|odor|vapor|...\b
and define a function to do the actual replacement,
http://manual.calibre-ebook.com/function_mode.html
Code:
def replace(match, number, file_name, metadata, dictionaries, data, functions, *args, **kwargs):
return {'color':'colour', 'odor':odour', 'vapor':vapour'}.get(match.group(), match.group())