Нужно знать чем компилировалось. Например я точно знаю, что в некоторых версиях gcc (ранних с точки зрения 11 стандарта), регексп реализован глючно и не выдает результатов ни для одного выражения. Можете попробывать через boost и сравнить.
PoopCoder: Компилятор один - GCC, а команды у него: gcc - для С и g++ для плюсов. Если кратко - так.
По реекспу:
Ну во первых бросьте полумеры - компилируйте с -std=c++11 если позволяет.
Во вторых попробуйте тот же код с использованием boost::regexp.
И еще для того, чтобы точно что-то сказать нужна версию компилятора:
g++ -v
Если я правильно помню (а я могу и ошибаться), то в версии gcc <=4.6 реализация regexp битая
Зачем вам столько скобок? Квантификатор отлично применяется непосредственно к мета-символу. Мне кажется вы слишком много экранируете.
Попробуйте вот так:
"^\w+ \w+ \w+$"
Плюсую за наблюдательность относительно скобок. Превелика вероятность что именно в них, в квадратных самых, проблема и кроется. Но вот с экранированием у него все норм. :)
ideone.com/ZIl4Ze - вот ваш код, вполне себе работает. Так что версию компилятора в студию. На всякий случай проверьте, что у вас все перекомпилируется как надо.
Сейчас сложно сказать, что компилятор X поддерживает или не поддерживает некий стандарт С++ (11/14/17). Конкретные фичи могут быть впилены, а могут быть не впилены. Поэтому смотритм en.cppreference.com/w/cpp/compiler_support
В первую очередь std. Что-то не верю, что их довели до ума, проверял на gcc 4.8, ох корявейшие же они там. Они тупо не работают как надо, юзайте boost::regex, boost::xpressive.