code: private String getPhosphateSymbol() {
      String phosphateSymbol = null;
      // nucleotide notation
      String ncNotation = getNotation();
      // nucleotide has base
      if (ncNotation.contains("(")) {
        int start = ncNotation.indexOf(")");
        phosphateSymbol = ncNotation.substring(start + 1);
        phosphateSymbol = phosphateSymbol.replaceAll("\\[|\\]", "");
      } else {
        if (getPositionType() == ENDING_POSITION_TYPE) {
          if (ncNotation.startsWith("[")) {
            phosphateSymbol = ncNotation.substring(ncNotation.indexOf("]") + 1);
            phosphateSymbol = phosphateSymbol.replaceAll("\\[|\\]", "");
          } else {
            phosphateSymbol = ncNotation.substring(1);
          }
        } else {
          if (ncNotation.endsWith("]")) {
            char[] chars = ncNotation.toCharArray();
            for (int i = chars.length; i > 0; i--) {
              String letter = String.valueOf(chars[i - 1]);
              if (letter.equals("[")) {
                phosphateSymbol = ncNotation.substring(i);
                phosphateSymbol = phosphateSymbol.replaceAll("\\[|\\]", "");
                break;
              }
            }
          } else {
            int pos = ncNotation.length() - 1;
            phosphateSymbol = ncNotation.substring(pos);
          }
        }
      }
      return phosphateSymbol;
    }
docs: find the phosphate symbol, if it is a modified monomer, the "[" and "]"
  will be removed
  
  @return linker monomer ID