Re: I think I found a bug in Lua string.patterns, can anyone help see if it's true ?

Domingo Alvarez Duarte <[email protected]> Tue, 12 May 2026 05:01:49 -0700 (PDT)
Newsgroups gmane.comp.lang.lua.general
Message-ID <[email protected]>
Here is it in a gist 
at https://gist.github.com/mingodad/4f54e0c26b66f72b21476cab6fa9fa47

On Tuesday, May 12, 2026 at 1:50:45 PM UTC+2 Spar wrote:

> It's hard to read. Perhaps, upload the code to pastebin or gist?
> On May 12, 2026 at 12:31 +0300, Domingo Alvarez Duarte <[email protected]>, 
> wrote:
>
> While doing some text replacements I found an unexpected behavior that can 
> be replicated with this Lua shown bellow, I've tested with Lua 5.1 through 
> 5.5 and LuaJIT, maybe I'm missing something subtle here, any help is 
> welcome. 
> ====
> local txt2 = [===[
> 03.01.411A01.22700      Limpieza y aseo                                   
>            1.210.830,00                    0,00                 0,00       
>          0,00          1.210.830,00        0,00         1.075.110,90       
> 88,79         1.021.998,36       84,40          871.196,21       71,95     
>      150.802,15         188.831,64
>
>
>
>
> Cuentas Anuales. Ejercicio 2024                                           
>                                                                             
>                                                                             
>                                                                             
>                      Pág. 64
>                     CUENTAS ANUALES DE LA ADMINISTRACIÓN GENERAL DE LA 
> COMUNIDAD DE CASTILLA Y LEÓN. EJERCICIO 2024
>
>
> EJECUCIÓN DEL PRESUPUESTO DE GASTOS DEL EJERCICIO 2024
> GASTOS POR APLICACIÓN
> ADMINISTRACIÓN GENERAL                                                     
>                                                                             
>                                                                             
>                                                              A FECHA DE 
> 31/12/2024
>                                      APLICACION                           
>  PRESUPUESTO INICIAL        MODIFICACIONES       MODIFICACIONES           
> TOTAL            PRESUPUESTO          (2)/(1) %   COMPROMISOS (3)     
>  (3)/(2) %    OBLIGACIONES        (4)/(2) %      PAGOS            (5)/(2) % 
>   OBLIG.PTES PAGO      REMANENTES DE
>
>                                                                           
>          (1)                  POSITIVAS            NEGATIVAS         
>  MODIFICACIONES       DEFINITIVO (2)                                       
>              RECONOCIDAS (4)                  REALIZADOS (5)               
>                            CREDITO
>
>
> 03.01.411A01.22701      Seguridad                                         
>                493.750,00                 0,00                 0,00         
>         0,00          493.750,00         0,00            40.532,49       
>  8,21            40.064,73        8,11           36.164,79        7,32     
>        3.899,94          453.685,27
>
>
> 03.01.411A01.22703      Postales                                           
>                 1.212,00                 0,00                 0,00         
>         0,00             1.212,00        0,00             1.208,23       
> 99,69             1.208,23       99,69            1.208,23       99,69     
>            0,00                 3,77
>
>
> 03.01.411A01.22704      Custodia, depósito y almacenaje.                   
>               219.293,00                 0,00                 0,00         
>         0,00          219.293,00         0,00             4.683,24       
>  2,14             4.683,24        2,14            4.683,24        2,14     
>            0,00          214.609,76
>
>
> 03.01.411A01.22706      Estudios y trabajos técnicos                       
>               257.392,00                 0,00                 0,00         
>         0,00          257.392,00         0,00           185.197,25       
> 71,95           185.197,14       71,95          143.786,77       55,86     
>       41.410,37           72.194,86
>
> ]===]
>
> local remove_re = [==[
>
>
>
> Cuentas Anuales%. Ejercicio %d+                                         
> +Pág%. %d+
>                     CUENTAS ANUALES DE LA ADMINISTRACIÓN GENERAL DE LA 
> COMUNIDAD DE CASTILLA Y LEÓN%. EJERCICIO %d+
>
>
> EJECUCIÓN DEL PRESUPUESTO DE GASTOS DEL EJERCICIO %d+
> GASTOS POR APLICACIÓN
> ADMINISTRACIÓN GENERAL[^\n]*
> [^\n]+
>
> [^\n]+
>
> ]==]
>
> txt2 = txt2:gsub(remove_re, "")
> print(txt2)
> ====
> I'm expecting this output:
> ====
> 03.01.411A01.22700      Limpieza y aseo                                   
>            1.210.830,00                    0,00                 0,00       
>          0,00          1.210.830,00        0,00         1.075.110,90       
> 88,79         1.021.998,36       84,40          871.196,21       71,95     
>      150.802,15         188.831,64
>
>
> 03.01.411A01.22701      Seguridad                                         
>                493.750,00                 0,00                 0,00         
>         0,00          493.750,00         0,00            40.532,49       
>  8,21            40.064,73        8,11           36.164,79        7,32     
>        3.899,94          453.685,27
>
>
> 03.01.411A01.22703      Postales                                           
>                 1.212,00                 0,00                 0,00         
>         0,00             1.212,00        0,00             1.208,23       
> 99,69             1.208,23       99,69            1.208,23       99,69     
>            0,00                 3,77
>
>
> 03.01.411A01.22704      Custodia, depósito y almacenaje.                   
>               219.293,00                 0,00                 0,00         
>         0,00          219.293,00         0,00             4.683,24       
>  2,14             4.683,24        2,14            4.683,24        2,14     
>            0,00          214.609,76
>
>
> 03.01.411A01.22706      Estudios y trabajos técnicos                       
>               257.392,00                 0,00                 0,00         
>         0,00          257.392,00         0,00           185.197,25       
> 71,95           185.197,14       71,95          143.786,77       55,86     
>       41.410,37           72.194,86
> ====
> but I'm getting this output:
> ====
> 03.01.411A01.22700      Limpieza y aseo                                   
>            1.210.830,00                    0,00                 0,00       
>          0,00          1.210.830,00        0,00         1.075.110,90       
> 88,79         1.021.998,36       84,40          871.196,21       71,95     
>      150.802,15         188.831,64
>
> 03.01.411A01.22704      Custodia, depósito y almacenaje.                   
>               219.293,00                 0,00                 0,00         
>         0,00          219.293,00         0,00             4.683,24       
>  2,14             4.683,24        2,14            4.683,24        2,14     
>            0,00          214.609,76
>
>
> 03.01.411A01.22706      Estudios y trabajos técnicos                       
>               257.392,00                 0,00                 0,00         
>         0,00          257.392,00         0,00           185.197,25       
> 71,95           185.197,14       71,95          143.786,77       55,86     
>       41.410,37           72.194,86
> ====
> I've tested with pcre2 and javascript and I do get my expected output with 
> this javascript:
> ====
> const str = `
> 03.01.411A01.22700      Limpieza y aseo                                   
>            1.210.830,00                    0,00                 0,00       
>          0,00          1.210.830,00        0,00         1.075.110,90       
> 88,79         1.021.998,36       84,40          871.196,21       71,95     
>      150.802,15         188.831,64
>
>
>
>
> Cuentas Anuales. Ejercicio 2024                                           
>                                                                             
>                                                                             
>                                                                             
>                      Pág. 64
>                     CUENTAS ANUALES DE LA ADMINISTRACIÓN GENERAL DE LA 
> COMUNIDAD DE CASTILLA Y LEÓN. EJERCICIO 2024
>
>
> EJECUCIÓN DEL PRESUPUESTO DE GASTOS DEL EJERCICIO 2024
> GASTOS POR APLICACIÓN
> ADMINISTRACIÓN GENERAL                                                     
>                                                                             
>                                                                             
>                                                              A FECHA DE 
> 31/12/2024
>                                      APLICACION                           
>  PRESUPUESTO INICIAL        MODIFICACIONES       MODIFICACIONES           
> TOTAL            PRESUPUESTO          (2)/(1) %   COMPROMISOS (3)     
>  (3)/(2) %    OBLIGACIONES        (4)/(2) %      PAGOS            (5)/(2) % 
>   OBLIG.PTES PAGO      REMANENTES DE
>
>                                                                           
>          (1)                  POSITIVAS            NEGATIVAS         
>  MODIFICACIONES       DEFINITIVO (2)                                       
>              RECONOCIDAS (4)                  REALIZADOS (5)               
>                            CREDITO
>
>
> 03.01.411A01.22701      Seguridad                                         
>                493.750,00                 0,00                 0,00         
>         0,00          493.750,00         0,00            40.532,49       
>  8,21            40.064,73        8,11           36.164,79        7,32     
>        3.899,94          453.685,27
>
>
> 03.01.411A01.22703      Postales                                           
>                 1.212,00                 0,00                 0,00         
>         0,00             1.212,00        0,00             1.208,23       
> 99,69             1.208,23       99,69            1.208,23       99,69     
>            0,00                 3,77
>
>
> 03.01.411A01.22704      Custodia, depósito y almacenaje.                   
>               219.293,00                 0,00                 0,00         
>         0,00          219.293,00         0,00             4.683,24       
>  2,14             4.683,24        2,14            4.683,24        2,14     
>            0,00          214.609,76
>
>
> 03.01.411A01.22706      Estudios y trabajos técnicos                       
>               257.392,00                 0,00                 0,00         
>         0,00          257.392,00         0,00           185.197,25       
> 71,95           185.197,14       71,95          143.786,77       55,86     
>       41.410,37           72.194,86
> `;
>
> const regex = new RegExp(`
>
>
> Cuentas Anuales\\. Ejercicio \\d+                                         
> +Pág\\. \\d+
>                     CUENTAS ANUALES DE LA ADMINISTRACIÓN GENERAL DE LA 
> COMUNIDAD DE CASTILLA Y LEÓN\\. EJERCICIO \\d+
>
>
> EJECUCIÓN DEL PRESUPUESTO DE GASTOS DEL EJERCICIO \\d+
> GASTOS POR APLICACIÓN
> ADMINISTRACIÓN GENERAL[^\\n]*
> [^\\n]+
>
> [^\\n]+
>
> `, 'g')
>
> console.log(str.replaceAll(regex, ""));
> ====
>
> --
> You received this message because you are subscribed to the Google Groups 
> "lua-l" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion visit 
> https://groups.google.com/d/msgid/lua-l/eeaad78a-27c0-4020-8f1c-dea4c5a604cdn%40googlegroups.com 
> <https://groups.google.com/d/msgid/lua-l/eeaad78a-27c0-4020-8f1c-dea4c5a604cdn%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>

-- 
You received this message because you are subscribed to the Google Groups "lua-l" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/d/msgid/lua-l/8063e8f7-4848-44ce-a3e4-7a57285bdd32n%40googlegroups.com.