public static String[] parseList(String list)
    {
        StringTokenizer tokenizer = new StringTokenizer(list, "[]");
        ArrayList<String> titles = new ArrayList<String>(667);
        tokenizer.nextToken(); // skip the first token
        while (tokenizer.hasMoreTokens())
        {
            String token = tokenizer.nextToken();

            // skip any containing new lines or double letters
            if (token.contains("\n"))
                continue;
            if (token.isEmpty())
                continue;

            // trim the starting colon, if present
            if (token.startsWith(":"))
                token = token.substring(1);

            titles.add(token);
        }
        return titles.toArray(new String[0]);
    }