Revisado.
Tu idea casi funciona.
El símbolo $b$ es la clave para escribir una expresión regular que no contenga $aba$: $b$ solo puede aparecer inicialmente, al final y en los entornos $bb$, $abc$, $cba$ y $cbc. Es decir, cada $b$ debe ser el primer símbolo de la palabra, el último símbolo de la palabra, parte de un bloque $abc$, o inmediatamente precedido por un $b$ o un $c. Vamos a ignorar las dos primeras posibilidades por un momento. Entonces cada uno de estos bloques puede ser precedido por cualquier cadena de $a$s y $c$s, y el último puede ser seguido por cualquier cadena de $a$s y $c$s. Por lo tanto, aún ignorando la posibilidad de un solo $b$ inicial o final, tenemos
$$(a+c+bbb^*+bc+cb)^*\;.$$
(Utilizo $bbb^*$ en lugar de solo $bb$ para obtener cadenas de números impares de $b$s.) Llamemos a esta expresión regular $R_0$. Puede ser precedido por $b$ o seguido por $ab$, así que
$$R_1=(b+\lambda)R_0(ab+\lambda)$$
cubre todas las posibilidades: cualquier otra cosa que termine en $b$ ya está cubierta por $$(b+\lambda)(a+c+bbb^*+bc+cb)^*\;.$$ (Uso $\lambda$ para la palabra vacía.)
Para obtener una palabra que contenga $aba$ un número impar de veces, podemos comenzar con $R_1$, cualquier palabra que contenga $aba$ cero veces, y esto ciertamente debe estar seguido por $\color{brown}{aba}$. Ahora, una palabra de $R_1$ podría terminar en $ab$, pero esto no es realmente un problema si $ab\color{brown}{aba}$ cuenta como solo una copia de $aba$. Sin embargo, no podemos simplemente seguir esto con otra palabra de $R_1$, porque podría comenzar con $ba$, y en ese caso podríamos obtener $ab\color{brown}{aba}ba$, con dos copias de $aba$. Para evitar esto, definamos
$$R=ababaR_0+aba(b+\lambda)R_0\;,$$
y probemos
$$(b+\lambda)R_0R(RR)^*\;.$$
Cada $R$ genera al menos un $aba$, y como $R_0$ no puede generar nada que comience con $ba$ o $aba$, cada $R$ genera solo un $aba$. El primer término de $R$ permite cadenas de $R_1$ que terminan en $ab$.