i think i found out whats the problem is, its preg_match that is not working because its not sorting out anything i just double checked it by commenting out preg_match still get the same numbers. just viewed the source code so here is the format
output = 44797672146744781781414929/02/2012 16:43:30SMS0 ATE0 AT+CMGS=+447817814149
Wait a minute - where did all that xml come from? Was that always there? I thought that your peekmessage() method was stripping all those. Even if it is being stripped, there may be hidden characters e.g. '\n'.
So if the peekmessage isn't removing the tags, you could just use SimpleXML to get the data into an array or go overboard with a pregmatch.