docs: public int find(CharSequence str, int start) {
  		final int pLen = this.len;
  		final int sLen = str.length();
  		
  		if (sLen == 0) {
  			throw new IllegalArgumentException("Cannot find empty string.");
  		}
  		
  		int pPos = start;
  		
  		final char first = str.charAt(0);
  		
  		while (pPos < pLen) {
  			if (first == this.value[pPos++]) {
  				// matching first character
  				final int fallBackPosition = pPos;
  				int sPos = 1;
  				boolean found = true;
  				
  				while (sPos < sLen) {
  					if (pPos >= pLen) {
  						// no more characters in string value
  						pPos = fallBackPosition;
  						found = false;
  						break;
  					}
  					
  					if (str.charAt(sPos++) != this.value[pPos++]) {
  						pPos = fallBackPosition;
  						found = false;
  						break;
  					}
  				}
  				if (found) {
  					return fallBackPosition - 1;
  				}
  			}
  		}
  		return -1;
  	}