function compareNumeric(a, b) {
  const aPrefix = a.match(numericRegex)[1];
  const bPrefix = b.match(numericRegex)[1];
  const aNumeric = parseInt(aPrefix, 10);
  const bNumeric = parseInt(bPrefix, 10);

  if (isNumber(aNumeric) && isNumber(bNumeric) && aNumeric !== bNumeric) {
    return compare(aNumeric, bNumeric);
  } else {
    return compare(a, b);
  }
}
Returns the numerical -- not the lexicographical -- ordering of `a` and `b`.

For example, `10-alpha` is greater than `2-beta`.

@param {string} a
@param {string} b
@returns {number} -1, 0 or 1 to indicate whether `a` is less than, equal to,
or greater than `b`, respectively