Я могу просто показать решение для Red и Rebol2.Поскольку слова в правиле сокращаются автоматически, их необходимо экранировать.
Красный
>> parse [x x x x _ a _ _ b] [to [ '_ '_] y: ]
== false
>>
>> y
== [_ _ b]
Rebol2
>> parse [x x x x _ a _ _ b] [some [r: [ '_ '_ ] (y: r) | skip] ]
== true
>> y
== [_ _ b]
После редактирования вопроса с помощью HostileFork решение для Red выглядит следующим образом
>> parse [x x x x #[none] a #[none] #[none] b] [to [none! none!] y:]
== false
>> y
== [none none b]
>>
пример по вопросу в комментарии giuliolunati
>> parse [x x x x 0 a 1 2 b] [to [integer! integer!] y:]
== false
>> y
== [1 2 b]