Pude hacer coincidir todo lo que estaba fuera de los corchetes usando ([^\[\]]+)(?:$|(?=\[)) , lo que me da:
!Bat_Boy.png|thumbnail! !visagepaume.png|thumbnail!, Test comment: public., Test comment: internal., [^TEST_ATTACHMENT.txt] , Test comment: public!, !visagepaume.png|thumbnail!, Test comment: internal!, [^TEST_ATTACHMENT .TXT]
¿Hay alguna manera de escribir una sola expresión regular que también coincida fuera de dos signos de exclamación con una tubería en el medio, además? Esto se debe usar con un solo método de cadena java replaceAll(). Básicamente, estoy buscando este resultado:
!Bat_Boy.png|miniatura! !visagepaume.png|miniatura! , Test comment: public., Test comment: internal., [^TEST_ATTACHMENT.txt] , Test comment: public!, !visagepaume.png|miniatura! , Test comment: internal!, [^TEST_ATTACHMENT.txt]
Notas: