I would tend to try to find another way to approach the problem starting with the original list of words, but if you really need to append to an existing one, regular expression instances have a source property that returns the source of the expression as a string and a constructor that accepts a string. So you could do this:
var rex = /^(i|blah|ho)$/;
var list = ["some","another"];
rex = new RegExp(rex.source.replace(")$", "|" + list.join("|") + ")$");
That will lose the flags, so you may want to use the second argument to the RegExp constructor, building the "gi" or whatever string based on the global, ignoreCase, multiline, etc. properties of the original regex. (Or a hack for that is to use rex.toString() and grab whatever characters follow the last / in the string you get back, and provide those as the second argument.) So a more complete version of the above might be:
// (I added a flag to this one to check that the flags processing worked)
var rex = /^(i|blah|ho)$/i;
var list = ["some","another"];
var flags = rex.toString();
var index = flags.lastIndexOf("/");
flags = flags.substring(index + 1);
rex = new RegExp(rex.source.replace(")$", "|" + list.join("|") + ")$"), flags);
Live Example | Source
Also note that if your words have characters in them that are special to regular expressions (., \, /, $, etc.), the above would break. Alphanumerics are fine, otherwise you may want to use one of the various implementations of RegExp.escape that are out in the wild (sadly there is none in the standard) and use that to escape the individual words.
indexOf