Guardar subcadenas con expresiones regulares

Soy nuevo en las expresiones regulares en Java (o en cualquier lenguaje, para el caso) y quiero hacer un hallazgo con ellas. La parte difícil que no entiendo cómo hacer es reemplazar algo dentro de la cadena que coincide.

Por ejemplo, si la línea que estoy buscando es

Person item6 [can {item thing [wrap]}]

Puedo escribir una expresión regular que encuentre esa línea, pero encontrar cuál es la palabra "cosa" (ya que puede diferir entre diferentes líneas) es mi problema. Es posible que desee reemplazar esa palabra con otra cosa o guardarla en una variable para más adelante. ¿Hay alguna manera fácil de hacer esto usando el motor de expresiones regulares de Java?

Respuestas a la pregunta(2)

Su respuesta a la pregunta