code: public String asymmetric(int leftPos, int rightPos) {
  		boolean lm = false, rm = false, isSameLAR = isEqual(this.region.get()[0], this.region.get()[1]);
  		int l = 0, r = 0, lr = 0, lp = 0, rp = 0;
  
  		for (Pair<Integer, Integer> kv : indexes.get()) {
  			if (isSameLAR) {
  				++lr;
  				if (lr == leftPos) { lp = kv.getR(); lm = true; }
  				if (lr == rightPos) { rp = kv.getR(); rm = true; }
  			} else {
  				switch (kv.getL().intValue()) {
  				case 0: ++l; if (l == leftPos) { lp = kv.getR(); lm = true; } break;
  				case 1: ++r; if (r == rightPos) { rp = kv.getR(); rm = true; } break;
  				}
  			}
  			
  			if (lm && rm) { break; }
  		}
  
  		if (!(lm && rm)) {
  			return EMPTY;
  		}
  		
  		return this.doSubstring(Pair.of(lp, rp));
  	}
docs: Returns the substring in given left position and right position when the left right tag is asymmetric
  
  @param leftPos
  @param rightPos
  @return