Mira como funciona:
Código PHP:
Ver original<?php
$f = 'archivo.txt';
// simulo archivo
$filestr = <<<'FILE'
[13,145,44,'cliente'],
[7,13,9,'provedor'],
FILE;
// seria:
# $filestr = file_get_contents($f);
$pattern = "@\[([0-9]{1,5}),[0-9]{1,5},[0-9]{1,5},(\'[a-z]{1,30}\')\]@i";
Si '
guarda exactamente lo mismo' es porque tu me diste un formato incorrecto,..... por ejemplo existen espacios o algun otro caracter que no colocaste en el ejemplo (!)