原です。

|なひです.何度もすいません.

|    a.gsub( /([^\\_]*(?:\\.[^\\_]*)*)_/, '\1 ' )

これだと、 a = "x\\_" でうまくいかないみたいですね。

|  x* y x* *

x* ( y x* )* という意味ですね。これはとても有用な式ですよね。