code: public StrPosition getAfterOfWithDetails(String srcStr, String token, boolean useTailSearch) {
  
          final StrPosition retVal = new StrPosition();
  
          if (isBlank(srcStr) || isBlank(token)) {
              return retVal;
          }
  
          final int tokenStartIndex;
  
          if (useTailSearch) {
              tokenStartIndex = tailOf(srcStr, token);
          } else {
              tokenStartIndex = srcStr.indexOf(token);
          }
  
          if (tokenStartIndex < 0) {
              return retVal;
          }
  
          int tokenEndIndex = tokenStartIndex + token.length() - 1;
  
          int removeHeadCount = tokenEndIndex + 1;
  
          String afterTokenStr = removeHead(srcStr, removeHeadCount);
  
          retVal.str = afterTokenStr;
          retVal.startIndex = tokenEndIndex + 1;
          retVal.endIndex = srcStr.length() - 1;
  
          return retVal;
      }
docs: returns the string that is cropped after token with position-detail-info<br>
  <br>
  Method Example1 tail mode=true,<br>
  <br>
  getAfterOfWithDetails("AAABCDBCDEEE","BCD",true) returns str=EEE,
  startIndex=9, endIndex=11<br>
  <br>
  <br>
  Method Example2 tail mode=true,<br>
  getAfterOfWithDetails("AAABCDBCDEEE","BCD",true) returns str=BCDEEE,
  startIndex=6, endIndex=11
  
  
  @param srcStr
  @param token
  @param useTailSearch
  is use tail mode<br>
  {@link #tailOf(String, String)}
  @return