# first test that matches which should not match this window really do
# not match it
######################################################################
-# TODO: use PCRE expressions
# TODO: specify more match types
-cmd q|[class="*"] kill|;
+# we can match on any (non-empty) class here since that window does not have
+# WM_CLASS set
+cmd q|[class=".*"] kill|;
cmd q|[con_id="99999"] kill|;
$content = get_ws_content($tmp);
$content = get_ws_content($tmp);
is(@{$content}, 1, 'one window still there');
+######################################################################
+# check that regular expressions work
+######################################################################
+
+$tmp = fresh_workspace;
+
+$left = $x->root->create_child(
+ class => WINDOW_CLASS_INPUT_OUTPUT,
+ rect => [ 0, 0, 30, 30 ],
+ background_color => '#0000ff',
+);
+
+$left->_create;
+set_wm_class($left->id, 'special7', 'special7');
+$left->name('left');
+$left->map;
+sleep 0.25;
+
+# two windows should be here
+$content = get_ws_content($tmp);
+ok(@{$content} == 1, 'two windows opened');
+
+cmd '[class="^special[0-9]$"] kill';
+
+sleep 0.25;
+
+$content = get_ws_content($tmp);
+is(@{$content}, 0, 'window killed');
+
+
done_testing;