code: private int[] checkURI (int p, int start, int end) {
          if (p>start && wikiChars[p-1]==':') { // "://" found
              int pb=p-1;
              while (pb>start && isLatinLetterOrDigit(wikiChars[pb-1])) pb--;
              int pe=p+2;
              while (pe<end && isUrlChar(wikiChars[pe])) pe++;
              String uri = null;
              do {
                  // don't want these chars at the end of URI
                  while (pe>p+2 && ",.;:?!%)".indexOf(wikiChars[pe-1])>=0) pe--;
                  if (isURI(wikiText.substring(pb, pe))) {
                      uri = wikiText.substring(pb, pe);
                  } else {
                      pe--; // try chopping from the end
                  }
              } while (uri==null && pe>p+2);
              if (uri!=null && isAbsoluteURI(uri)) {
                  int offs[]= {pb, pe};
                  return offs;
              }
          }
          return null;
      }
docs: @param p points to first slash in suspected URI (scheme://etc)
  @param start points to beginning of parsed item
  @param end points to end of parsed item
  
  @return array of two integer offsets [begin_uri, end_uri] if matched, null otherwise