private boolean selectTbondsInvolving(String str, BitSet bs) {
		if (RANGE_LEADING.matcher(str).find()) {
			String[] s = str.split("-");
			int beg = Float.valueOf(s[0].trim()).intValue();
			int end = Float.valueOf(s[1].trim()).intValue();
			synchronized (model.tBonds) {
				for (TBond tb : model.tBonds) {
					if (inRangeInclusive(tb.getAtom1().getIndex(), beg, end)
							|| inRangeInclusive(tb.getAtom2().getIndex(), beg, end)
							|| inRangeInclusive(tb.getAtom3().getIndex(), beg, end)
							|| inRangeInclusive(tb.getAtom4().getIndex(), beg, end)) {
						bs.set(model.tBonds.indexOf(tb));
					}
				}
			}
			return true;
		}
		if (INTEGER_GROUP.matcher(str).find()) {
			String[] s = str.split(REGEX_SEPARATOR + "+");
			int index;
			for (int m = 0; m < s.length; m++) {
				index = Float.valueOf(s[m]).intValue();
				synchronized (model.tBonds) {
					for (TBond tb : model.tBonds) {
						if (tb.contains(index))
							bs.set(model.tBonds.indexOf(tb));
					}
				}
			}
			return true;
		}
		if (INDEX.matcher(str).find()) {
			int index = Float.valueOf(str.trim()).intValue();
			synchronized (model.tBonds) {
				for (TBond tb : model.tBonds) {
					if (tb.contains(index))
						bs.set(model.tBonds.indexOf(tb));
				}
			}
			return true;
		}
		str = str.trim();
		if (str.length() > 0) {
			String[] s = str.split(REGEX_SEPARATOR + "+");
			for (int i = 0; i < s.length; i++) {
				s[i] = standardizeElementName(s[i]);
				Object o = model.paramMap.get(s[i]);
				if (o != null) {
					synchronized (model.tBonds) {
						for (TBond tb : model.tBonds) {
							if (tb.containsElement(s[i])) {
								bs.set(model.tBonds.indexOf(tb));
							}
						}
					}
				}
			}
			return true;
		}
		return false;
	}