In una stringa devo trovare tutte le parole contenute tra due #

Codice PHP:
        preg_match_all('/\#(.*)\#/',$miastringa,$array); 
Ho provato così, ma ottengo risultati inattesi.

Se la striga è la seguente: Il mio nome è #nome# e il mio cognome è #cognome#

Nell'array secondo logica dovrei avere:
1: nome
2: cognome
3: nome# e il mio cognome è #cognome

ma non è così, ottengo invece:

1: nome# e il mio cognome è #cognome