code: boolean matches(final char[] value, final int from) {
  
          // Check the bounds
          final int len = myCharacters.length;
          if (len + from > value.length || from < 0) {
              return false;
          }
  
          // Bounds are ok, check all characters.
          // Allow question marks to match any character
          for (int i = 0; i < len; i++) {
              if (myCharacters[i] != value[i + from] && myCharacters[i] != '?') {
                  return false;
              }
          }
  
          // All characters match
          return true;
      }
docs: Checks whether the value represents a complete substring from the from index.
  @param from The start index of the potential substring
  @return <code>true</code> If the arguments represent a valid substring, <code>false</code> otherwise.