private Matcher reset(CharSequence input,int start,int end){
  if (input == null) {
    throw new IllegalArgumentException("input == null");
  }
  if (start < 0 || end < 0 || start > input.length() || end > input.length() || start > end) {
    throw new IndexOutOfBoundsException();
  }
  this.input=input.toString();
  this.regionStart=start;
  this.regionEnd=end;
  resetForInput();
  matchFound=false;
  appendPos=0;
  return this;
}

private Matcher reset ( CharSequence input , int start , int end ) { if ( input == null ) { throw new IllegalArgumentException ( "input == null" ) ; } if ( start < 0 || end < 0 || start > input . length ( ) || end > input . length ( ) || start > end ) { throw new IndexOutOfBoundsException ( ) ; } this . input = input . toString ( ) ; this . regionStart = start ; this . regionEnd = end ; resetForInput ( ) ; matchFound = false ; appendPos = 0 ; return this ; }
resets the matcher . a new input sequence and a new region can be specified . results of a previous find get lost . the next attempt to find an occurrence of the pattern in the string will start at the beginning of the region . this is the internal version of reset ( ) to which the several public versions delegate .
