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

class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		String msg = "? ??? [Префикс] Имя ? Сообщение";
		Pattern _namePattern = Pattern.compile("(\\[[^\\]\\[]*])\\s+(.*?)\\s*\\?\\s*(.*)");
		Matcher _m = _namePattern.matcher(msg);
		boolean found = false;
		while(_m.find()) {
		    found = true;
		    System.out.println("1: "+_m.group(1));
		    System.out.println("2: "+_m.group(2));
		    System.out.println("3: "+_m.group(3));
		}
		
		if(!found) {
		    System.out.println("Can't parse!");
		}
	}
}