Thank you for your quick reply but I don't think this solves my problem. It only solves it for the proof-of-concept which I made to proof, the bug in Poco regex functionality.
Our system does not even link against libPCRE but uses Poco. If I change the proof-of-concept to a Poco only solution (see attachment) I still have the problem of a non functioning regex.
$ g++ regex.cc -lPocoFoundation
$ ./a.out
Poco 0x01030600 on Linux 4.2.0-35-generic @ x86_64
Poco match 1234567890 to pattern ^[0-9]{10} matches? no
Poco match 123456789 to pattern ^[0-9]{10} matches? no
$ ldd ./a.out
linux-vdso.so.1 => (0x00007ffe94177000)
libPocoFoundation.so.9 => /usr/lib/libPocoFoundation.so.9 (0x00007f14dd744000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f14dd440000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f14dd229000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f14dce64000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f14dcc46000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f14dca07000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f14dc7ee000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f14dc5ea000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f14dc3e1000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f14dc0db000)
/lib64/ld-linux-x86-64.so.2 (0x000055cbc9c93000)
$ LD_PRELOAD=/lib/x86_64-linux-gnu/libpcre.so.3 ./a.out
Poco 0x01030600 on Linux 4.2.0-35-generic @ x86_64
Poco match 1234567890 to pattern ^[0-9]{10} matches? yes
Poco match 123456789 to pattern ^[0-9]{10} matches? no
$ LD_PRELOAD=/lib/x86_64-linux-gnu/libpcre.so.3 ldd ./a.out
linux-vdso.so.1 => (0x00007ffed2c4f000)
/lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f34efa89000)
libPocoFoundation.so.9 => /usr/lib/libPocoFoundation.so.9 (0x00007f34ef722000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f34ef41d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f34ef207000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f34eee42000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f34eec23000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f34eea0a000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f34ee806000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f34ee5fd000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f34ee2f7000)
/lib64/ld-linux-x86-64.so.2 (0x0000564cbde41000)
Arne,
Thank you for your quick reply but I don't think this solves my problem. It only solves it for the proof-of-concept which I made to proof, the bug in Poco regex functionality.
Our system does not even link against libPCRE but uses Poco. If I change the proof-of-concept to a Poco only solution (see attachment) I still have the problem of a non functioning regex.
$ g++ regex.cc -lPocoFoundation 7000) ion.so. 9 => /usr/lib/ libPocoFoundati on.so.9 (0x00007f14dd74 4000) x86_64- linux-gnu/ libstdc+ +.so.6 (0x00007f14dd44 0000) 64-linux- gnu/libgcc_ s.so.1 (0x00007f14dd22 9000) 64-linux- gnu/libc. so.6 (0x00007f14dce6 4000) 64-linux- gnu/libpthread. so.0 (0x00007f14dcc4 6000) 64-linux- gnu/libpcre. so.3 (0x00007f14dca0 7000) 64-linux- gnu/libz. so.1 (0x00007f14dc7e e000) 64-linux- gnu/libdl. so.2 (0x00007f14dc5e a000) 64-linux- gnu/librt. so.1 (0x00007f14dc3e 1000) 64-linux- gnu/libm. so.6 (0x00007f14dc0d b000) ld-linux- x86-64. so.2 (0x000055cbc9c9 3000)
$ ./a.out
Poco 0x01030600 on Linux 4.2.0-35-generic @ x86_64
Poco match 1234567890 to pattern ^[0-9]{10} matches? no
Poco match 123456789 to pattern ^[0-9]{10} matches? no
$ ldd ./a.out
linux-vdso.so.1 => (0x00007ffe9417
libPocoFoundat
libstdc++.so.6 => /usr/lib/
libgcc_s.so.1 => /lib/x86_
libc.so.6 => /lib/x86_
libpthread.so.0 => /lib/x86_
libpcre.so.3 => /lib/x86_
libz.so.1 => /lib/x86_
libdl.so.2 => /lib/x86_
librt.so.1 => /lib/x86_
libm.so.6 => /lib/x86_
/lib64/
$ LD_PRELOAD= /lib/x86_ 64-linux- gnu/libpcre. so.3 ./a.out /lib/x86_ 64-linux- gnu/libpcre. so.3 ldd ./a.out f000) 64-linux- gnu/libpcre. so.3 (0x00007f34efa8 9000) ion.so. 9 => /usr/lib/ libPocoFoundati on.so.9 (0x00007f34ef72 2000) x86_64- linux-gnu/ libstdc+ +.so.6 (0x00007f34ef41 d000) 64-linux- gnu/libgcc_ s.so.1 (0x00007f34ef20 7000) 64-linux- gnu/libc. so.6 (0x00007f34eee4 2000) 64-linux- gnu/libpthread. so.0 (0x00007f34eec2 3000) 64-linux- gnu/libz. so.1 (0x00007f34eea0 a000) 64-linux- gnu/libdl. so.2 (0x00007f34ee80 6000) 64-linux- gnu/librt. so.1 (0x00007f34ee5f d000) 64-linux- gnu/libm. so.6 (0x00007f34ee2f 7000) ld-linux- x86-64. so.2 (0x0000564cbde4 1000)
Poco 0x01030600 on Linux 4.2.0-35-generic @ x86_64
Poco match 1234567890 to pattern ^[0-9]{10} matches? yes
Poco match 123456789 to pattern ^[0-9]{10} matches? no
$ LD_PRELOAD=
linux-vdso.so.1 => (0x00007ffed2c4
/lib/x86_
libPocoFoundat
libstdc++.so.6 => /usr/lib/
libgcc_s.so.1 => /lib/x86_
libc.so.6 => /lib/x86_
libpthread.so.0 => /lib/x86_
libz.so.1 => /lib/x86_
libdl.so.2 => /lib/x86_
librt.so.1 => /lib/x86_
libm.so.6 => /lib/x86_
/lib64/