"La longitud variable de mirar atrás no está implementada" pero no es de longitud variable

Tengo una expresión regular muy loca que estoy tratando de diagnosticar. También es muy largo, pero lo he reducido al siguiente script. Ejecute con 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";
}

Esto da el error "La búsqueda de longitud variable no se implementa en regex".

Espero que pueda ayudar con varios problemas:

No veo por qué se produciría este error, porque todos los posibles valores retrospectivos son de 7 caracteres: "lunes", "viernes", "domingo", "agosto". No escribí esta expresión regular yo mismo, y no estoy seguro de cómo interpretar la sintaxis(?i) y(?-i). Cuando me deshago de la(?i) el error en realidad desaparece. ¿Cómo interpretará Perl esta parte de la expresión regular? Creo que los primeros dos caracteres se evalúan como "paréntesis literales opcionales", excepto que los paréntesis no se escapan y también en ese caso obtendría un error de sintaxis diferente porque los paréntesis de cierre no coincidirían.Este comportamiento comienza en algún lugar entre Perl 5.16.3_64 y 5.26.1_64, al menos en Strawberry Perl. La primera versión está bien con el código, la última no. ¿Por qué comenzó?

Respuestas a la pregunta(4)

Su respuesta a la pregunta