$1: .htaccess

Beitrag lesen

[...] Passt also auch in beiden Fällen.

Nein. Deine Erwartungshaltung zu $1 ist falsch:

  
my $s = 'foo-html';  
if ($s =~ /^(.*).html$/) {  
	print "1|$1 $&\n";  
}	  
if ($s =~ /^(.*)\.html$/) {  
	print "2|$1 $&\n";  
}  

Warum ist /^(.*).html$/ bezüglich der Aufgabenstellung falsch?

Weil hier der zweite Punkt anlog dem ersten ein Platzhalter ist.