regex: Como escapar de barras invertidas e caracteres especiais?

Existe uma maneira de escapar (ou proteger) caracteres especiais em uma expressão regular?

O que eu gostaria de fazer é criar um simples testador de regex:

import java.util.regex.*;
class TestRegex { 
   public static void main( String ... args ) { 
       System.out.printf("%s ~= %s ? %s  %n" , args[0], args[1], Pattern.matches( args[0], args[1] ) );
   }
}

O que funciona muito bem para testar meus padrões antes de inseri-los no programa:

$java TestRegex "\d" 1
\d ~= 1 ? true  
$java TestRegex "\d" 12
\d ~= 12 ? false  
$java TestRegex "\d+" 12
\d+ ~= 12 ? true  
$java TestRegex "\d+" a12
\d+ ~= a12 ? false  
$java TestRegex "\d+" ""
\d+ ~=  ? false  

A próxima coisa que faço é usar esse padrão no meu programa, mas cada vez que preciso escapar manualmente:

Pattern p = Pattern.compile( /*copy pasted regex here */ );

E nesta amostra, substitua:\d com\\d. Depois de um tempo, isso se torna muito irritante.

Q. Como posso escapar automaticamente desses caracteres especiais?

questionAnswers(1)

yourAnswerToTheQuestion