Прямо сейчас ваше регулярное выражение не выполняется, потому что \b
никогда не может совпадать. Соответствует только между буквенно-цифровыми и не буквенно-цифровыми символами; поэтому он никогда не может совпадать между \w*
и [A-Z]
или другим \w*
.
Итак, вам нужны другие (= не алфавитно-цифровые) символы между словами:
Попробуйте
(\w*)\W+([A-Z][a-z]\w*)\W+(\w*)
хотя (если ваш движок регулярных выражений позволяет использовать свойства Unicode), вы могли бы быть счастливее с
(\w*)\W+(\p{Lu}\p{Ll}\w*)\W+(\w*)
Как написано, только заглавные слова длиной 2 или более совпадают, т.е. е. «Я» (как в «я») не будет соответствовать этому. Я полагаю, вы вставили [a-z]
, чтобы избежать совпадений, таких как "IBM"? Или каково было ваше намерение?