Salve a tutti, sto utilizzando delle espressioni regolari per separare un testo, per spezzarlo, il testo e' il seguente:

Codice PHP:
function f1(par1,par2){ /*some code*/  }
function 
f2(par1,par2){ /*some code*/ var = function(){/*some code*/}; }
function 
f3(par1,par2){ /*some code*/ var = function(){/*some code*/}; } 
il mio scopo e' quello di fare il match ottenendo il corpo e i parametri delle 3 funzioni, e per questo avevo scritto questa espressione regolare:

/function\s(.*?)\s*\((.*?)\)\s\{(.*?)\}/

funzionerebbe, nn fosse per var p = function(){/*some code*/}; o una qualunque } all'interno del corpo della funzione che ne fa riconoscere la fine (erroneamente).

c'e' modo di ottenere un match corretto anche se all'interno della funzione c'e' } ?

spero in una vostra risposta, e ad ogni modo, grazie di aver almeno letto la mia richiesta.