protected static ArrayList<String> getOffspringStrings(int startIndex, String treeStr) {
		ArrayList<String> children = new ArrayList<String>();
		treeStr = treeStr.trim();
		int lastParen = matchingParenIndex(startIndex, treeStr);
		
		//Scan along subtree string, create new strings separated by commas *at 'highest level'*
		//not all commas, of course
		int i=startIndex+1;
		StringBuffer cstr = new StringBuffer();
		
		int count = 0;
		boolean reading = true;
		for(i=startIndex+1; i<lastParen; i++) {
			char c = treeStr.charAt(i);
			if (c=='[')
				reading = false;
			if (c==']')
				reading = true;
			if (c=='(')
				count++;
			if (c==')')
				count--;
			if (reading && c==',' && count==0) {
				children.add(cstr.toString());
				cstr = new StringBuffer();
			}
			else	
				cstr.append( treeStr.charAt(i));
			
		}
		
		children.add(cstr.toString());
		
		return children;
	}