use v6; token word { had | a | Sam | Tom } say '*Mary* had a little lamb'.subst: rx{ '*' (<-[*]>+) '*' \s+ [ \s+]+ }, { '*' ~ join('_', $0, @($)) ~ '* ' };