$string = <<HOGE
value1<TD>1<TD>value2<TD>24</TR>
<TD>ほげ<TD>73<TD>/\565
HOGE
;

$string =~ /value1<TD>(.*?)<TD>value2<TD>(.*?)<\/TR>(?:.|[^.])*?ほげ<TD>(.*?)<TD>/;

print(
"value1:$1\n".
"value2:$2\n".
"ほげ:$3\n"
);

これを実行すると

value1:
value2:
ほげ:

と何も表示されないのですが、$stringの中の\565のどれか一つ以上を消す、
パターンの中のほげの前に<TD>をつける、ほげを半角英数に置き換えるのいずれかをすると

value1:1
value2:24
ほげ:73

とうまくいきます。なぜですか?