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"; 
-   
 '
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 (!)