code: function _isValid(position, activeMaskset, c, strict) {
                      var testPos = determineTestPosition(position), loopend = c ? 1 : 0, chrs = '', buffer = activeMaskset["buffer"];
                      for (var i = activeMaskset['tests'][testPos].cardinality; i > loopend; i--) {
                          chrs += getBufferElement(buffer, testPos - (i - 1));
                      }
  
                      if (c) {
                          chrs += c;
                      }
  
                      //return is false or a json object => { pos: ??, c: ??} or true
                      return activeMaskset['tests'][testPos].fn != null ?
                          activeMaskset['tests'][testPos].fn.test(chrs, buffer, position, strict, opts)
                          : (c == getBufferElement(activeMaskset['_buffer'], position, true) || c == opts.skipOptionalPartCharacter) ?
                              { "refresh": true, c: getBufferElement(activeMaskset['_buffer'], position, true), pos: position }
                              : false;
                  }
docs: always set a value to strict to prevent possible strange behavior in the extensions