I was going to suggest substr() (which is around twice as fast as any of these to extract just these three pieces of data, perfectly formatted) - until I saw the real regex being used. I can't imagine substr, unpack or any rigidly formatted extraction method is any use at all for that lot.