Взаимодействует ли многобайтовый символ с символом конца строки в регулярном выражении?

С этим регулярным выражением:

regex1 = /\z/

следующие строки соответствуют:

"hello" =~ regex1 # => 5
"こんにちは" =~ regex1 # => 5

но с этими регулярными выражениями:

regex2 = /#$/?\z/
regex3 = /\n?\z/

они показывают разницу:

"hello" =~ regex2 # => 5
"hello" =~ regex3 # => 5
"こんにちは" =~ regex2 # => nil
"こんにちは" =~ regex3 # => nil

Что мешает? Строковое кодирование - UTF-8, а ОС - Linux (т.е.$/ является"\n"). Многобайтовые символы мешают$/? Как?

Ответы на вопрос(2)

Ваш ответ на вопрос