private TokenizerProperty searchString(String image, boolean removeIt) {
    char          startChar = getStartChar(image.charAt(0));
    PropertyList  list      = getList(startChar);
    PropertyList  prev      = null;
    
    while (list != null) {
      TokenizerProperty prop  = list._property;
      String            img   = prop.getImages()[0];
      int               res   = compare(img, image, 1);

      if (res == 0) {
        if (removeIt) {
          if (prev != null) {
            prev._next = list._next;
          } else {
            list = list._next;
            if (startChar >= 0 && startChar < DIRECT_INDEX_COUNT) {
              _asciiArray[startChar] = list;
            } else if (list != null) {
              _nonASCIIMap.put(new Character(startChar), list);
            } else {
              _nonASCIIMap.remove(new Character(startChar));
            }
          }
        }
        return prop;
      } else if (res < 0) {
        break;
      }
      prev = list;
      list = list._next;
    }
    return null;
  }