processCapture = function processCapture(tag, replyObj, options) {
  const starID = (tag.starID || 1) - 1;
  debug.verbose(`Processing capture: <cap${starID + 1}>`);
  const replacedCapture = (starID < replyObj.stars.length) ? replyObj.stars[starID] : '';
  debug.verbose(`Replacing <cap${starID + 1}> with "${replacedCapture}"`);
  return replacedCapture;
}
Parse the reply for additional tags, this is called once we have a reply candidate filtered out.

@param {Object} replyObj - The Reply Object
@param {string} replyObj.id - This is the 8 digit id mapping back to the ss parsed json
@param {array} replyObj.stars - All of the matched values
@param {string} replyObj.topic - The Topic name we matched on
@param {Object} replyObj.reply - This is the Mongo Reply Gambit
@param {string} replyObj.trigger - The input string of the gambit the user matched with their message
@param {string} replyObj.trigger_id - The trigger id (8 digit)
@param {string} replyObj.trigger_id2 - The trigger id (mongo id)

@param {Object} options
@param {Object} options.user - The user object
@param {Object} options.system - Extra cached items that are loaded async during load-time
@param {Object} options.message - The original message object

@param {array} options.system.plugins - An array of plugins loaded from the plugin folder
@param {Object} options.system.scope - All of the data available to `this` inside of the plugin during execution
@param {number} options.depth - Counter of how many times this function is called recursively.

Replies can have the following:
Basic (captured text) subsitution ie: `I like <cap1>`
Input (parts of speech) subsitution ie: `I like <noun>`
Expanding terms using wordnet ie: `I like ~sport`
Alternate terms to choose at random ie: `I like (baseball|hockey)`
Custom functions that can be called ie: `I like ^chooseSport()`
Redirects to another reply ie: `I like {@sport}`