const regex = /(<a .*?)(href="|\')(http:\/\/oceanexplorer.noaa.gov\/redirectimage.php\?url=|\/redirectimage.php\?url=|\/redirectimage.php\?url=)([.\s\S]*?)(<\/a>)/g;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(<a .*?)(href="|\\\')(http:\\\/\\\/oceanexplorer.noaa.gov\\\/redirectimage.php\\?url=|\\\/redirectimage.php\\?url=|\\\/redirectimage.php\\?url=)([.\\s\\S]*?)(<\\\/a>)', 'g')
const str = `g_ImageTable[g_imax++] = new Array ("gallery/600/1.jpg", "The inflatable baby pool used for the phytoplankton experiment. <em>Image courtesy of 2009 RUSALCA Expedition, RAS-NOAA.</em><br /><br /><!--strong><a href='/redirectimage.php?url=http://oceanexplorer.noaa.gov/explorations/09bioluminescence/background/hires/bamboo_coral_hires.jpg' title='Download high-resolution image' target='window_name'>Download high-resolution image (jpg, 547 KB)</a></strong-->");
`;
const subst = `\1\2\4 <img src="/siteart/newwindow.png" width="10" height="11" alt="exit icon" title="exit icon"/>\5`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions