Другие ответы почти поняли это правильно. Выражение поиска правильное:
\b(c[a-z]*)\b
Я использовал * вместо + , чтобы сопоставить c как одно слово, и добавил конечный \b чтобы сделать ограничения слов более понятными, но исходная форма в порядке.
Строка замены должна быть:
$1 text
Это согласуется со ссылкой на документацию Джима К, но это довольно запутанно в этой области.
В частности, \1 можно использовать в поисковом выражении, чтобы повторить строку, ранее найденную в выражении, но $1 необходимо использовать в замещающей строке. Использование в строке поиска означает, что (a.b).*\1 будет сопоставлять a и b с символом между ними, а затем a и b с тем же символом между ними. Это не то же самое, что a.b.*a.b , где промежуточные символы могут отличаться. Пример в ссылке на документацию верен, но ничего не объясняет, где он будет полезен.
И последнее замечание: моя версия 5.1.4.2 LibreOffice Writer отказывается делать подстановки, когда строка поиска начинается с \b , хотя она находит все экземпляры правильно; трейлинг \b работает как положено. Это ошибка - OpenOffice 4.1.3 работает правильно. Обходной путь должен использовать ([^a-z]\bc[a-z]*)\b в качестве строки поиска с той же строкой замены: это работает во всех случаях, кроме случаев, когда первое слово документа начинается с c .