Я думаю, что поскольку вы передаете строку, содержащую многобайтовые символы, вам необходимо передать параметр регулярного выражения / u, чтобы проанализировать его как строку UTF-8.
Только что проверил это в разных версиях Ruby, и это, кажется, происходит только в JRuby, поэтому я думаю, что вы нашли ошибку;)
Если вы сначала используете что-то вроде «string» .to_java_stringКазалось бы, это работает, но на самом деле он сначала конвертирует его в ISO-8859-1, что вам не нужно.Чтобы сохранить кодировку, просто используйте .to_java и передайте ей регулярное выражение.
Вот обходной путь, который должен работать, я думаю:
regex = /(aaa|bbb):/u
str = "\343\202\242:"
str.to_java =~ regex