public REPrimitiveFragment(String def) throws Exception{
		Arrays.fill(chars, false);
		char[] charArray = def.toCharArray();
		char last = 0;
		boolean assignment = true;
		for(int i = 0; i < charArray.length ; i++)
		{
			if(charArray[i] == '\\')
			{
				i++;
				last = charArray[i];
				chars[charArray[i]-32] = assignment;
			}else if(charArray[i] == '-'){
				i++;
				while(last != charArray[i])
				{
					chars[last - 32] = assignment;
					last++;
				}
				chars[last - 32] = assignment;
			}else if(charArray[i] == '^'){ // We invert it
				if(i != 0){
					throw new Exception("Failed to compile, inappropiatly placed '^' in regex");
				}
				Arrays.fill(chars, true);
				assignment = false;
			}else{
				last = charArray[i];
				chars[charArray[i]-32] = assignment;
			}
		}
		
	}