code: public void setTarget(char[] text, int start, int len, boolean shared) {
          cache = null;
          data = text;
          offset = start;
          end = start + len;
          this.shared = shared;
          init();
      }
docs: To be used with much care.
  Supplies a text to search in/match with, as a part of a char array, as above, but also allows to permit
  to use the array as internal buffer for subsequent inputs. That is, if we call it with <code>shared=false</code>:<pre>
  myMatcher.setTarget(myCharArray,x,y,<b>false</b>); //we declare that array contents is NEITHER shared NOR will be used later, so may modifications on it are permitted
  </pre>
  then we should expect the array contents to be changed on subsequent setTarget(..) operations.
  Such method may yield some increase in perfomance in the case of multiple setTarget() calls.
  Resets current search position to zero.
  
  @param text   - a data source
  @param start  - where the target starts
  @param len    - how long is the target
  @param shared - if <code>true</code>: data are shared or used later, <b>don't</b> modify it; if <code>false</code>: possible modifications of the text on subsequent <code>setTarget()</code> calls are perceived and allowed.
  @see Matcher#setTarget(regexodus.Matcher, int)
  @see Matcher#setTarget(java.lang.CharSequence)
  @see Matcher#setTarget(java.lang.CharSequence, int, int)
  @see Matcher#setTarget(char[], int, int)
  @see Matcher#setTarget(java.io.Reader, int)