>>435
>>439
ありがとうございます。
?を括弧の中に入れれば良かったのですね。
よろしければもう一つ、
例えば

$test = "AB";
if ($test =~ /^([AB]?)([AB]?)(?:C([AB]?))?$/) {

のような形(つまり3回目はCが先行する場合のみマッチしたい)では
処理が$3まで到達しないのかやはり未定義になってしまうようです…
このような形に応用するやり方はあるでしょうか。
考えたのですが、どうしても…