code: function categorizeSingleWordWithOffset(word, lcword, exact, oRules, cntRec) {
      // simply apply all rules
      debuglogV(function () { return "rules : " + JSON.stringify(oRules, undefined, 2); });
      var res = [];
      oRules.forEach(function (oRule) {
          checkOneRuleWithOffset(word, lcword, exact, res, oRule, cntRec);
      });
      debuglog("CSWWO: got results for " + lcword + "  " + res.length);
      res.sort(sortByRank);
      return res;
  }
docs: /*
  export function categorizeString(word: string, exact: boolean, oRules: Array<IFModel.mRule>,
  cntRec? : ICntRec): Array<IFMatch.ICategorizedString> {
  simply apply all rules
  debuglogV(() => "rules : " + JSON.stringify(oRules, undefined, 2));
  
  var lcString = word.toLowerCase();
  var res: Array<IFMatch.ICategorizedString> = []
  oRules.forEach(function (oRule) {
  checkOneRule(word,lcString,exact,res,oRule,cntRec);
  });
  res.sort(sortByRank);
  return res;
  }