code: public static function endsWithRawChar($text, $chr)
      {
          $chr = str_replace("\\", "\\\\", $chr);
          $pattern = "/(?<!\\\\)(?:\\\\\\\\)*(" . $chr . ")$/";
          $result = preg_match($pattern, $text);
          return (0 < $result);
      }
docs: ある文字列が指定された文字で終了して, かつエスケープ処理されていないかを判別します.
  以下に例を示します.
  
  - ("[ABC]", "]") => TRUE
  - ("[ABC\\]", "]") => FALSE ("\\" がその後ろの "]" をエスケープしているとみなされる)
  - ("[ABC\\\\]", "]") => TRUE ("\\\\" が一つの文字として扱われるため, 直後の "]" に影響しない)
  
  @param  string $text 検査対象の文字列
  @param  string $chr  検査対象の文字
  @return bool         引数 $text の末尾が, '\' でエスケープされていない $chr で終了している場合のみ TRUE