thanks a lot for your quick explanations and advices.
I wasn't aware that regexp would change my expression internally into something else (and I am actually not sure if I want that). But I kind of see the problem now (as beeing a German).
The German sharp s 'ß' doesn't exist as a capital letter in German writing. Since no German word starts with a sharp s, there is no need for a capital accordance. If used never the less in capital writing, it is written as 'SS'. So at least from a 'German point of view' it makes sense that the 'ss' extension is only implemented for the case-insensitive modifier.
Still it is not quite clear to me what happens to the 'st' example:
my $pattern = "(?<!st)abc"; # 'st' in lookbehind
qr/$pattern/i; # error: 'Variable length lookbehind not imple
+mented in regex...
Whereas this one works (just like any other letter after 's' besides the combination 'ss' and 'st'):
my $pattern = "(?<!sz)abc"; # 'sz' in lookbehind
qr/$pattern/i; # this works fine
Is there a way to display exactly the expression, that the regexp engine is using? (So, according to Corion this would be: /(?<!ß|st)abc/i in the first example). That would be very helpful.