>最短マッチを行うのに Perl5だと
>
>$str = 'abXedcX';
>$str =~ /(.*?X)/;
>
>とした場合、ちゃんと $1 eq 'abX' となりますが Perl4 だとサーバーエラー
>が発生してしまいます(Perl4はリムネットで利用しています)

Perl4の正規表現には最短マッチの構文がありませんので、
場合によって書き分ける必要があります。
上記の例ですと、「先頭から最初のXまでにマッチする」
と読めますので、

$str =~ /([^X]*X)/;

と書く事ができます。ただ、例えばHTMLのコメント文にマ
ッチさせるために

$str =~ /(<!--.*?-->)/;

のような式をPerl4で書きたいとすると急に話はややこし
くなります。

$try = 1;
while($str =~ /(<!--([^>]*>){0,$try})/){
    last if $1 =~ /-->$/;
    $try++;
}

print $1;

とか。複数マッチ(m//g)させるためにはさらに考えないと
いけないでしょう。