XFiler.RegisterCommand("regex_mark", "正規表現でマーク", function() {
    // 1. 入力ダイアログを表示して正規表現パターンを取得
    var pattern = XFiler.Prompt("マークするアイテムの正規表現を入力してください\n(例: \\.txt$ , ^[0-9])", "正規表現でマーク", ".*");
    
    // キャンセルされた場合は終了
    if (pattern === null) return;

    try {
        // 大文字小文字を区別しない正規表現オブジェクトを作成
        var regex = new RegExp(pattern, "i");
        
        // 2. アクティブペインの全アイテム名（相対パス）を取得
        var items = XFiler.GetAllItems();
        var count = 0;

        // 3. 現在のマークを一旦クリア
        XFiler.ClearMark();

        // 4. 各アイテムに対して正規表現でマッチングを行い、マッチすればマーク
        for (var i = 0; i < items.length; i++) {
            if (regex.test(items[i])) {
                XFiler.MarkItem(items[i], true);
                count++;
            }
        }

        // 結果をログに出力
        XFiler.Log(count + " 個のアイテムをマークしました。 (パターン: " + pattern + ")");
        
    } catch (e) {
        // 正規表現の構文エラーなどを表示
        XFiler.ShowMessage("正規表現エラー:\n" + e.message, "エラー");
    }
});
