La librería regex de BDS (Borland Developer Studio) puede tener algunas limitaciones o diferencias en comparación con otras implementaciones de expresiones regulares. Es posible que la limitación que estás experimentando al utilizar la expresión
`[.xxx.]` se deba a una característica específica de esta librería.
El error "invalid collating element" que estás obteniendo indica que hay un problema con el elemento de ordenación utilizado en la expresión. Esto puede estar relacionado con la forma en que la librería BDS maneja los caracteres dentro de los corchetes
`[ ]`.
Una posible solución para evitar este error y lograr el resultado deseado es utilizar una expresión regular alternativa. En lugar de utilizar
`[.xxx.]`, puedes utilizar una expresión regular que capture los caracteres específicos que deseas. Por ejemplo, en lugar de
`[[.ab.]]*`, puedes utilizar la expresión regular
`a*b*` para obtener el resultado esperado en el caso de
`"abababc"`.
Aquí tienes un ejemplo de cómo utilizar esta expresión regular en C++ con la librería regex de BDS:
Este código utilizará la expresión regular
`a*b*` para eliminar todas las ocurrencias de
`"ab"` en la cadena de entrada
`"abababc"`, lo que resultará en la cadena
`"ababab"`.
Recuerda que las expresiones regulares pueden variar entre diferentes implementaciones y es posible que algunas características específicas no estén disponibles en todas las librerías. Si necesitas utilizar una expresión regular más compleja o específica, es posible que debas considerar otras alternativas o librerías que ofrezcan un soporte más completo para tus necesidades.
Espero que esta información te sea útil.