Ваша догадка верна, .*?
является конструкцией PCRE: .*
является нормальным «любой символ, столько раз, сколько возможно, по крайней мере, ноль раз», и конечный знак вопроса меняет это на «... как несколько раз, насколько это возможно ... ". SUSv4 говорит:
Поведение нескольких смежных символов дублирования ('+', '*', '?' И интервалов) приводит к неопределенным результатам.
Я не слишком много изучал шаблон, но вы должны быть в состоянии обойти эту конкретную несовместимость: следующим подшаблоном является ([[:space:]]+)
, поэтому вы должны иметь возможность переформулировать его как "любой не пробел". символ ... ":
[^[:space:]]*([[:space:]]+)
или, может быть, просто избавиться от проблемы, опустив знак вопроса. за космическим пожирателем следует еще один .*
.