code: public final int end(int id) {
          MemReg b = bounds(id);
          if(b == null)
              return -1;
          return b.out - offset;
      }
docs: Returns the offset after the last character of the subsequence
  captured by the given group during this match.
  <br>
  Capturing groups are indexed from left
  to right, starting at one.  Group zero denotes the entire pattern, so
  the expression <i>m.</i><tt>end(0)</tt> is equivalent to
  <i>m.</i><tt>end()</tt>.
  
  @param  id
  The index of a capturing group in this matcher's pattern
  
  @return  The offset after the last character captured by the group,
  or <tt>-1</tt> if the match was successful
  but the group itself did not match anything