“Comprimento variável não implementado”, mas não é comprimento variável

Eu tenho um regex muito louco que estou tentando diagnosticar. Também é muito longo, mas reduzi-o apenas ao script a seguir. Execute usando o Strawberry Perl v5.26.2.

use strict;
use warnings;

my $text = "M Y H A P P Y T E X T";
my $regex = '(?i)(?<!(Mon|Fri|Sun)day |August )abcd(?-i)';

if ($text =~ m/$regex/){
    print "true\n";
}
else {
    print "false\n";
}

Isso fornece o erro "Comprimento variável lookbehind não implementado no regex".

Espero que você possa ajudar com vários problemas:

Não vejo por que esse erro ocorreria, porque todos os possíveis valores de lookbehind têm 7 caracteres: "Segunda", "Sexta", "Domingo", "Agosto".Eu não escrevi esse regex pessoalmente e não tenho certeza de como interpretar a sintaxe.(?i) e(?-i). Quando eu me livrar do(?i) o erro realmente desaparece. Como o perl interpretará essa parte do regex? Eu acho que os dois primeiros caracteres são avaliados como "parênteses literais opcionais", exceto que os parênteses não são escapados e também nesse caso eu receberia um erro de sintaxe diferente, porque os parênteses de fechamento não seriam correspondidos.Esse comportamento começa em algum lugar entre Perl 5.16.3_64 e 5.26.1_64, pelo menos no Strawberry Perl. A versão anterior está bem com o código, a última não. Por que isso começou?

questionAnswers(4)

yourAnswerToTheQuestion