It works with Perl 5.14.2 but not with 5.20.2
It seems that Perl preprocessor does something with repeated chars before the
regex engine that makes it consider it wrongly
if i change ss for s{2} like this:
body __Z_NEGATIVE_LOOKBEHIND /(?<!s{2}) text/i
then it works
try it Olivier and let us know..
---PedroD
>On Friday, August 31, 2018, 4:00:05 PM GMT+2, Olivier Coutu
<[email protected]> wrote: > >I wrote a rule that throws a variable
length lookbehind error where the lookbehind is fixed length. Here is a MWE:
>body __Z_NEGATIVE_LOOKBEHIND /(?<!ss) text/i
>
>spamassassin --siteconfigpath=${HOME}/sa-rules/ --lint
>aoû 31 09:53:45.343 [9074] warn: config: invalid regexp for rule
>__Z_NEGATIVE_LOOKBEHIND: /(?<!ss) text/i: Variable length lookbehind not
>implemented in regex m/(?i)(?<!ss) text/>The error goes away if I remove the
>case insensitive, or if I put a character between the two s characters. Using
>nn instead of ss makes the error go away. The error stays if I add characters
>before or after the ss. Is there a special non-text signification to the
>characters ss? Here is my config:
>SpamAssassin version 3.4.1
> running on Perl version 5.22.1