(только первый # является разделителем)
50#some message from me to you #1 or #2
в
array ( [amount] => 50 [message] => 'some message from me to you #1 or #2' )
Вам не нужно регулярное выражение для такого простого разбиения. Следующее разделит вашу строку правильно:
explode('#', $string, 2)
Это вернет массив как:
Array ( [0] => '50' [1] => 'some message from me to you #1 or #2' )
Подробнее см. взорваться .
Если ваш запрос в конечном итоге усложняется, посмотрите на preg_split .