On Friday 27 October 2017 at 17:26:18, Yuri wrote: > 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? No. Suppose I write a | character (as per Alex's first example above) in my regex. Basic POSIX will match that literally. Extended grep will not. Judging purely from what is written in my regex, did I mean the character to be matched literally, or not? Squid cannot tell. > Adherence to standards provides interoperability - a familiar word? Indeed. > I asked a simple question. And wanted a simple answer. Maybe there isn't one. > And not reasoning, what can be, and what can not. Then I apologise for trying to explain. > Interoperability is a simple thing. Er, no, it isn't. Antony. -- If the human brain were so simple that we could understand it, we'd be so simple that we couldn't. Please reply to the list; please *don't* CC me. _______________________________________________ squid-users mailing list squid-users@xxxxxxxxxxxxxxxxxxxxx http://lists.squid-cache.org/listinfo/squid-users