private static String buildSpaceName(String[] pieces, int start, int end) {
		StringBuffer buf = new StringBuffer();
		buf.append(pieces[start]);
		for (int i = start + 1; i <= end; i++) {
			buf.append(UNDERSCORE);
			buf.append(pieces[i]);
		}
		return buf.toString();
	}
Returns the addressSpace that matches the largest range of parsed pieces, ignoring the first and
last piece (which can't be part of an addressSpace name).  In other words if the array of strings
passed in is {"a","b","c","d","e"}, it will test for addresSpaces named "b_c_d", then "c_d", and
finally "d".
@param factory the address factory containing the valid addressSpaces.
@param pieces the array of parsed label pieces
@return The addressSpace the matches the biggest string, or the default space if no match is found.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/symbol/SymbolUtilities.java