[squid-users] Squid regex grammar

Yuri yvoinov at gmail.com
Fri Oct 27 15:26:18 UTC 2017



27.10.2017 21:17, Antony Stone пишет:
> On Friday 27 October 2017 at 17:06:01, Yuri wrote:
>
>> 27.10.2017 20:55, Alex Rousskov пишет:
>>> When a regular expression is using extended features, the basic regular
>>> expression compiler often (or even always?!) does not fail because it
>>> views the extended features as ordinary plain characters. Thus, Squid
>>> cannot tell that something went wrong.
>>>> $ echo "foobar" | grep --basic-regexp    'foo|bar'
>>>> $ echo "foobar" | grep --extended-regexp 'foo|bar'
>>>> foobar
>>> As you can see, the basic compiler is silent about the "|" character
>>> that it does not support. Here is a similar example where a malformed
>>>
>>> extended regular expression is silently accepted by the basic compiler:
>>>> $ echo "foobar" | grep --basic-regexp 'foo(bar'
>>>> $ echo "foobar" | grep --extended-regexp 'foo(bar'
>>>> grep: Unmatched ( or \(
>> I would like either a clear documentation
> That sounds entirely reasonable - a statement something like "Squid is 
> guaranteed to use basic POSIX grammar, but extended grammar may be available 
> on different systems; the sysadmin should check"?
>
>> or some tool for checking whether the regular expression is correct from the
>> point of view of the current library used by Squid or not.
> What does "correct" mean?
"correct" mean "this will correctly works in Squid, not silently
ignored". This is simple and obvious, isn't it?
>
> As Alex's examples above demonstrate, both are "correct" regexes from the 
> basic POSIX point of view; they just don't do what the admin might have wanted 
> or expected.
>
> How could Squid know whether you expect ( in a regex to be a literal character 
> or a meta-character?
I expect following known documented behaviour.

And not a casket with a surprise, which should be investigated in each
specific configuration. Adherence to standards provides interoperability
- a familiar word?
>
>> The existing opportunities seem completely unsatisfactory.
> Nothing documents that Squid uses other than basic POSIX grammar, so why would 
> you assume that it does?
Antonio, the problem is that this too is not documented. Maybe someone
will work hard to clearly describe the behavior in the documentation?
Because I did not find, as I said, a direct mention of the default
grammar. Do I clearly express my thoughts?
>
>
> Antony.
>
I asked a simple question. And wanted a simple answer. And not
reasoning, what can be, and what can not. Interoperability is a simple
thing.

-- 
**************************
* C++: Bug to the future *
**************************

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0x3E3743A7.asc
Type: application/pgp-keys
Size: 2887 bytes
Desc: not available
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20171027/5458ce96/attachment-0001.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: OpenPGP digital signature
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20171027/5458ce96/attachment-0001.sig>


More information about the squid-users mailing list