Salve ragazzi,
ho un problema che non riesco a risolvere,
sto scrivendo un semplice cms che permette di customizzare il layout con un semplice linguaggio fatto da me
Vorrei implementare un estressione regolare capace di parserizzare una stringa come questa:

codice:
[:conceptsPropertiesFixed:name:kind != true]? 				
[:conceptsPropertiesFixed] 
testo generico			
[?]
L'espressione regolare che uso dovrebbe estrarre i seguenti valori
match[1] = :conceptsPropertiesFixed:name:kind
match[2] = !=
match[3] = true
match[4] = [:conceptsPropertiesFixed]
testo generico

Se
codice:
[:conceptsPropertiesFixed:name:kind != true]?[:conceptsPropertiesFixed]testo generico[?]
sta tutto su una riga riesco a parserizzarlo con la seguente espressione
'/\[(.+?)\s(.+?)\s(.+?)\]\?(.+?)\[\?\]/'
pero' potrebbero esserci degli spazi o dei \n e che la quarta sottostringa potrebbe essere multiriga.
Come posso modificare la mia espressione.
Vi ringrazio anticipatamente
Mauro