sed
espera uma expressão regular básica (BRE). \s
não é uma construção especial padrão em um BRE (nem em um ERE , para esse assunto), esta é uma extensão de algumas línguas, em particular Perl (que muitos outros imitam). No sed, dependendo da implementação, \s
representa a string literal \s
ou o caractere literal s
.
Em sua implementação, parece que \s
corresponde a s
, então \s*
corresponde a 0 ou mais s
e x\s*
corresponde a x
em sua entrada de amostra, portanto x ax
é transformado em x ax
(e xy
seriam transformados em x y
e assim por diante). Em outras implementações (por exemplo, com o GNU sed), \s
corresponde a \s
, então \s*
corresponde a uma barra invertida seguida por 0 ou mais s
, o que não ocorre na sua entrada, portanto a linha permanece inalterada. p>
Isso não tem absolutamente nada a ver com ganância. A ganância não influencia se uma string corresponde a um regex, apenas qual parte da string é capturada por uma correspondência.