code: public static String getMultiTagValue(String st, String tag) {
          String ret = null;
          int pos = st.indexOf("?" + tag);
  
          if (pos != -1) {
              // first possible endpos
              int searchpos = pos + 3;
              int endpos = -1;
  
              while (true) {
                  // search for start of next value-code
                  endpos = st.indexOf("?", searchpos);
  
                  // check if this is REALLY a value-code
                  if (endpos != -1 && endpos + 2 < st.length()) {
                      /* "?" is far enough before end to make it possible
                       * to be followed by two digits */
  
                      if (st.charAt(endpos + 1) >= '0' && st.charAt(endpos + 1) <= '9' &&
                          st.charAt(endpos + 2) >= '0' && st.charAt(endpos + 2) <= '9') {
                          /* the "?" must be followed by two digits, a single "?"
                           *  does NOT mark the end of value */
                          break;
                      }
                  } else {
                      /* the "?" is near the end of the string, so we break out
                       * here und use the complete string as value */
                      endpos = -1;
                      break;
                  }
  
                  // start search for the next "?" after the current, wrong one
                  searchpos = endpos + 1;
              }
  
              if (endpos == -1)
                  endpos = st.length();
  
              ret = st.substring(pos + 3, endpos);
          }
  
          return ret;
      }
docs: /* Gets a value from the "multi-tag". Codes look like ?20 - a value goes until
  the next value-code or until end of data