protected int getSomeLength(boolean exploreStartLength, List breakIndicator)	{
		int len = 0;
		
		for (int i = 0; breakIndicator.size() <= 0 && i < sequence.size(); i++)	{
			Object o = sequence.get(i);
			
			if (o instanceof Consumer)	{
				Consumer cc = (Consumer)o;

				if (cc.isNullable())	{	// fixed start length ends here
					breakIndicator.add("nullable");	// make parent terminate
					return len;
				}
				else
				if (cc.isRepeatable())	{	// fixed start length ends here
					len += cc.getSomeLength(exploreStartLength, breakIndicator);
					breakIndicator.add("repeatable");	// make parent terminate
					return len;
				}
				
				len += cc.getSomeLength(exploreStartLength, breakIndicator);
			}
			else
			if (o instanceof CharacterSet)	{
				if (exploreStartLength)	{
					breakIndicator.add("set");	// make parent terminate
					return len;
				}
				len += 1;	// would match exactly one character
			}
			else	{	// must be String
				len += ((String)o).length();	// matches a string of same length
			}
		}
		
		return len;
	}