PHP / Regex: o regex simples para bbcode [s] ou [strike] falha ao funcionar

Para um analisador bobo do bbcode, eu queria adicionar duas definições em uma, minha definição original era esta para preg_replace:

'#\[s\](.*?)\[/s\]#si', '<strike>\\1</strike>'

E isso funciona, eu desejava que o usuário pudesse usar[s] ou[strike] para iniciar o texto nesse formato, então naturalmente adicionei algo parecido com isso, pensando que funcionaria:

'#\[(s|strike)\](.*?)\[/(s|strike)\]#si', '<strike>\\1</strike>'

Infelizmente, isso falha, em vez do que você esperaria, tanto[s] e[strike] (usado corretamente) faça:s estrike (minha remarcação está correta para mostrar seu resultado real, mostra s ou strike independentemente do que está dentro dela)

Por que substitui o texto interno pelo nome da tag? A adição de parênteses ao redor do s | é o problema? Provavelmente estou fazendo tudo errado ..

questionAnswers(1)

yourAnswerToTheQuestion