import java.util.regex.*;
import java.util.*;
import java.lang.*;
import java.io.*;

class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		System.out.println(parseToMap("Artist: foo Title: bar Dimensions: x Framed dimensions: y"));

	}
	public static Map<String, String> parseToMap(String str) {
		String DESCRIPTION_DELIMITER = "[Aa]rtist:|[Tt]itle:|[Ff]ramed [Dd]imensions:|[Dd]imensions:";
		Map<String, String> itemMap = new LinkedHashMap<>();
		Pattern p = Pattern.compile("(" + DESCRIPTION_DELIMITER + ")((?:(?!" + DESCRIPTION_DELIMITER + ").)*)"); //split to key/val pair
		Matcher m = p.matcher(str);
		while(m.find()) {
			itemMap.put(m.group(1).trim(), m.group(2).trim());
		}
	    return itemMap;
	}

}