const regex = /(<a href="([^"]*)"\s*class="(?:[^"]* )?mfp_thumb.*(?: [^"]*)?"[^>]*>\s*([^\s].*?[^\s])\s*<\/a>)/smg;
// Alternative syntax using RegExp constructor
// const regex = new RegExp('(<a href="([^"]*)"\\s*class="(?:[^"]* )?mfp_thumb.*(?: [^"]*)?"[^>]*>\\s*([^\\s].*?[^\\s])\\s*<\\\/a>)', 'smg')
const str = `blah blah <a href="test.html">Outside of scope</a> blah blah
<a href="/about/team/management/tony-georgis" class="mfp_thumb_pos_top" itemprop="url"><img src="/images/thumbnails/mod_minifrontpage/43_642_default.jpg" width="400" height="400" alt="Tony Georgis, P.E."></a>
blah blah <a class="test" id="one">Nothing</a> blah blah
`;
const subst = `{modal url="$2"}$3`;
// 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