La razón es que la expresión regular detecta si son números solamente y muestra el resultado. El problema contigo es que tienes dos campos numéricos. Para ello vas a tener que añadir otra parte para que tome exactamente lo que quieres, por ejemplo
Código PHP:
Ver original<?php
$str = '{GSMSMS}{}{}{611111111}{mensaje1}{\{663459D7-DDDB-4FC4-A2FC-D3F66908E4E2\}}{Credits: 99}{sms}{1}{}{}
{GSMSMS}{}{}{611111111}{mensaje2}{\{B834F99F-CA47-4B42-B00D-D472E445411D\}}{Credits: 99}{sms}{2}{}{}
{GSMSMS}{}{}{611111111}{mensaje3}{\{BA993668-EB18-48DA-8EEF-4BBEEA890FC9\}}{Credits: 99}{sms}{3}{}{}
{GSMSMS}{}{}{611111111}{mensaje4}{\{6F505F4D-5780-42E3-B2A9-6C9F5F772101\}}{Credits: 99}{sms}{4}{}{}
{GSMSMS}{}{}{611111111}{mensaje5}{\{A63ADDA9-9A6A-48B7-B37A-2A39600111F0\}}{Credits: 99}{sms}{5}{}{}
{GSMSMS}{}{}{611111111}{mensaje6}{\{A63ADDA9-9A6A-48B7-B37A-2A39600111F0\}}{Credits: 99}{sms}{6}{}{}';
foreach($m[1] as $v){
echo $v;
}
PD: Trata a la próxima colocar lo que estás usando exactamente así se te da una respuesta más adecuada.