Issue #2759 has been updated by Yui NARUSE.
If you don't use $1 after matching, you can use /(?=(?:[ ]{4}|\t)(?<marker>[-](?:[ ]{,2})\k<marker>))/.
Otherwise you use a string matched by ([ ]{4}|\t), you should give name to it, like Kornelius says,
/(?=(?<foo>[ ]{4}|\t)(?<marker>[-](?<_>[ ]{,2})\k<marker>))/
----------------------------------------
http://redmine.ruby-lang.org/issues/show/2759
----------------------------------------
http://redmine.ruby-lang.org