Manejo del delimitador con caracteres de escape en el método Java String.split ()

He buscado en la web para mi consulta, pero no obtuve la respuesta que se ajusta exactamente a mis necesidades. Tengo mi cadena como abajo:

A|B|C|The Steading\|Keir Allan\|Braco|E

Mi salida debe verse como a continuación:

A
B
C
The Steading|Keir Allan|Braco
E

Mi requisito es omitir el delimitador si está precedido por la secuencia de escape. He intentado lo siguiente usando un aspecto negativo detrás deString.split():

(?<!\\)\|

Pero, mi problema es que el usuario final definirá el delimitador dinámicamente y no siempre será necesario|. Puede ser cualquier carácter en el teclado (sin restricciones). Por lo tanto, mi duda es que la expresión regular anterior puede fallar para algunos de los caracteres especiales que no están permitidos en la expresión regular.

Solo quería saber si esta es la manera perfecta de hacerlo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta