src/Peach/Util/Strings.php
public static function endsWithRawChar($text, $chr)
    {
        $chr = str_replace("\\", "\\\\", $chr);
        $pattern = "/(?<!\\\\)(?:\\\\\\\\)*(" . $chr . ")$/";
        $result = preg_match($pattern, $text);
        return (0 < $result);
    }
public static function endsWithRawChar($text, $chr)
    {
        $chr = str_replace("\\", "\\\\", $chr);
        $pattern = "/(?<!\\\\)(?:\\\\\\\\)*(" . $chr . ")$/";
        $result = preg_match($pattern, $text);
        return (0 < $result);
    }
ある文字列が指定された文字で終了して, かつエスケープ処理されていないかを判別します.
以下に例を示します.

- ("[ABC]", "]") => TRUE
- ("[ABC\\]", "]") => FALSE ("\\" がその後ろの "]" をエスケープしているとみなされる)
- ("[ABC\\\\]", "]") => TRUE ("\\\\" が一つの文字として扱われるため, 直後の "]" に影響しない)

@param  string $text 検査対象の文字列
@param  string $chr  検査対象の文字
@return bool         引数 $text の末尾が, '\' でエスケープされていない $chr で終了している場合のみ TRUE