成瀬です。

# -*- coding: UTF-8 -*-
str = "あいうえお"
m = str[/./]
p m.encoding #=> <Encoding:ASCII-8BIT>

となるのですが、ここは UTF-8 文字列を返すべきではないでしょうか。たぶん
単に rb_str_new4() なだけっぽいですが。

Index: string.c
===================================================================
--- string.c    (リビジョン 13711)
+++ string.c    (作業コピー)
@@ -307,6 +307,7 @@
     }
     else if (STR_ASSOC_P(orig) || STR_EMBED_P(orig)) {
        str = str_new(klass, RSTRING_PTR(orig), RSTRING_LEN(orig));
+       rb_enc_copy(str, orig);
     }
     else {
        str = str_new4(klass, orig);

また、
ru = Regexp.new("\xE3\x81\x82".force_encoding('UTF-8'))
ru.encoding #=> <Encoding:UTF-8>
p ru.to_s.encoding # => <Encoding:ASCII-8BIT>
re = Regexp.new("\x82\xA0".force_encoding('EUC-JP'))
re.encoding #=> <Encoding:EUC-JP>
rr = Regexp.union(ru,re) #=> /(?-mix:\343\201\202)|(?-mix:\202\240)/
rr.encoding #=> <Encoding:ASCII-8BIT>
となるのですが、これは意図した動作でしょうか

-- 
NARUSE, Yui  <naruse / airemix.com>
DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA