Error en la expresión regular para capturar caracteres especiales

Escribí una expresión regular para capturar caracteres especiales en una cadena de entrada, pero también capta los números. Aquí está la expresión regular,

final String REGEX="[^.,%*$#@?^'|/\\\\~\\[\\]{}+-=\"]*"; 

Necesito atrapar los personajes mencionados anteriormente. Por favor, ayúdame.

Creó un rango con el guión sin escindir.

El guión mal colocado hace que el patrón coincida con estos caracteres:

enter image description here

Escape del guión o coloque al final de la clase:

 final String REGEX="[^.,%*$#@?^'|/\\\\~\\[\\]{}+=\"-]*"; ^ 

Aquí está esta demostración de expresiones regulares

Mueva el guion ( - ) al final de su clase de caracteres:

 final String REGEX="[^.,%*$#@?^'|/\\\\~\\[\\]{}+=\"-]*" 

Donde está actualmente posicionado ( +-= ), expresa un rango de + a = . Este rango incluye, ao todos los dígitos.