public function literal()
{
$characters = func_get_args();
$pattern = count($characters) > 1 ? "[%s]" : "%s";
$escapedCharacters = array();
foreach ($characters as $c) {
$escapedCharacters[] = ctype_alnum($c) ? $c : sprintf("\\%s", $c);
}
$this->pattern .= sprintf($pattern, implode("", $escapedCharacters));
return $this;
}