[squid-users] acl url_regex on squid3 is not working using an online tested regular expression

Alex Rousskov rousskov at measurement-factory.com
Mon Sep 25 20:45:27 UTC 2017


On 09/25/2017 12:42 PM, ppmartell at unah.edu.cu wrote:
> The designed regex:
> /((?=.*\biphone\b)|(?=.*\bprod\b)).*\.facebook\.com(\:|\d|)/

AFAICT, for the basic purpose of matching strings, the above mind
boggling regular expression can be simplified to:

  /\b(iphone|prod)\b.*\.facebook\.com/

Please note that I am _not_ saying that the expression works correctly
for your use case. I am only saying that its true meaning is much
simpler than the original version looks.


> aclParseRegexList: Invalid regular expression
> '((?=.*\biphone\b)|(?=.*\bprod\b)).*\.facebook\.com(\:|\d|)': Invalid
> preceding regular expression*

FWIW, the simplified expression above does not use the (?=...)
assertions, so it should not produce the above error.


> *    2017/09/22 12:39:33| Warning: empty ACL: acl facebook dstdom_regex
> "/etc/squid3/acl/facebook"*

> Obviously, the squid3 parser is tagging my acl as **wrong**, but I
> already tested online and it was good to use.

You did not test with the regex library used by your Squid. Different
libraries have different capabilities. The advanced feature (i.e., a
positive lookahead assertion) that your regex is using is apparently not
supported by the library that your Squid is using. Fortunately, that
feature is completely unnecessary for your use case.


> Also it says the acl is empty. What does this mean?

It probably means that after removing bad regexes, there were no regexes
left on the "acl ..." line. You can ignore this warning until you have
no warnings about invalid regular expressions.


HTH,

Alex.


More information about the squid-users mailing list