code: function parseDollars(replaceWith, match) {
          replaceWith = replaceWith.replace(/(\$+)(\d{1,2}|&)/g, function (whole, dollars, index) {
              if (dollars.length % 2 === 1) { // make sure dollar signs don't escape themselves (like $$1, $$$$&)
                  if (index === "&") { // handle $&
                      // slice the first dollar (but leave any others to get unescaped below) and return the
                      // whole match
                      return dollars.substr(1) + (match[0] || "");
                  } else {
                      // now we're sure index is an integer, so we can parse it
                      var parsedIndex = parseInt(index, 10);
                      if (parsedIndex !== 0) { // handle $n or $nn, but don't handle $0 or $00
                          // slice the first dollar (but leave any others to get unescaped below) and return the
                          // the corresponding match
                          return dollars.substr(1) + (match[parsedIndex] || "");
                      }
                  }
              }
              // this code gets called if the dollar signs escape themselves or if $0/$00 (not handled) was present
              return whole; // return everything to get handled below
          });
          // replace escaped dollar signs (i.e. $$, $$$$, ...) with single ones (unescaping)
          replaceWith = replaceWith.replace(/\$\$/g, "$");
          return replaceWith;
      }
docs: Given a replace string that contains $-expressions, replace them with data from the given
  regexp match info.
  NOTE: we can't just use the ordinary replace() function here because the string has been
  extracted from the original text and so might be missing some context that the regexp matched.
  @param {string} replaceWith The string containing the $-expressions.
  @param {Object} match The match data from the regexp.
  @return {string} The replace text with the $-expressions substituted.