code: function(replacement) {
                  // if this match has a name then wrap it in a span tag
                  if (pattern['name']) {
                      replacement = _wrapCodeInSpan(pattern['name'], replacement);
                  }
  
                  // console.log('LEVEL', CURRENT_LEVEL, 'replace', match[0], 'with', replacement, 'at position', start_pos, 'to', end_pos);
  
                  // store what needs to be replaced with what at this position
                  if (!replacements[CURRENT_LEVEL]) {
                      replacements[CURRENT_LEVEL] = {};
                      replacement_positions[CURRENT_LEVEL] = {};
                  }
  
                  replacements[CURRENT_LEVEL][start_pos] = {
                      'replace': match[0],
                      'with': replacement
                  };
  
                  // store the range of this match so we can use it for comparisons
                  // with other matches later
                  replacement_positions[CURRENT_LEVEL][start_pos] = end_pos;
  
                  // process the next match
                  processNext();
              }
docs: callback for when a match was successfully processed
  
  @param {string} replacement
  @returns void