@Override
	public String getFirstWord(final String str)
	{
		int i=0;
		int start=-1;
		for(;i<str.length();i++)
		switch(str.charAt(i))
		{
		case '^':
		{
			i++;
			if(i<str.length())
			{
				switch(str.charAt(i))
				{
				case ColorLibrary.COLORCODE_FANSI256:
					i += 3;
					break;
				case ColorLibrary.COLORCODE_BANSI256:
					i += 3;
					break;
				case ColorLibrary.COLORCODE_BACKGROUND:
					i++;
					break;
				case '<':
					while(i<str.length()-1)
					{
						if((str.charAt(i)!='^')||(str.charAt(i+1)!='>'))
							i++;
						else
						{
							i++;
							break;
						}
					}
					break;
				case '&':
					while(i<str.length())
					{
						if(str.charAt(i)!=';')
							i++;
						else
							break;
					}
					break;
				}
			}
			break;
		}
		case ' ':
			if(start>=0)
				return str.substring(start,i);
			break;
		default:
			if(Character.isLetter(str.charAt(i)) && (start<0))
				start=i;
			break;
		}
		return str;
	}