diff --git a/README.md b/README.md
index 90cdd06..b81ccae 100644
--- a/README.md
+++ b/README.md
@@ -94,7 +94,7 @@
 cordctl model list Slice --filter "id>10, controller_kind=Deployment"
 ```
 
-Supported operators in the filters include `=`, `!=`, `>`, `<`, `>=`, `<=`.
+Supported operators in the filters include `=`, `!=`, `>`, `<`, `>=`, `<=`, `~=`, and `[=`.
 
 The core also permits models to be filtered based on state, and the `--state` argument can be used to filter based on a state. States include `all`, `dirty`, `deleted`, `dirtypol`, and `deletedpol`. `default` is a synonym for `all`. For example,
 
@@ -103,6 +103,16 @@
 cordctl model list ONOSApp --state deleted
 ```
 
+The `~=` operator is a regular expression search, and the `[=` operator is a substring search. For example,
+
+```bash
+# List slices that match the regular expression .*-operator
+./cordctl model list Slice --filter "name~=.*-operator"
+
+# List slices that contain the substring etcd
+./cordctl model list Slice --filter name[=etcd
+```
+
 ### Updating models
 
 The `model update` command is a flexible way to update one or more models. The most basic syntax uses one or more model IDs. For example,
diff --git a/internal/pkg/commands/orm.go b/internal/pkg/commands/orm.go
index d09f15d..eb7d64f 100644
--- a/internal/pkg/commands/orm.go
+++ b/internal/pkg/commands/orm.go
@@ -66,6 +66,10 @@
 		return strings.TrimSpace(query[2:]), "EQUAL", true, nil
 	} else if strings.HasPrefix(query, "==") {
 		return "", "", false, corderrors.NewInvalidInputError("Operator == is now allowed. Suggest using = instead.")
+	} else if strings.HasPrefix(query, "~=") {
+		return strings.TrimSpace(query[2:]), "REGEX", false, nil
+	} else if strings.HasPrefix(query, "[=") {
+		return strings.TrimSpace(query[2:]), "CONTAINS", false, nil
 	} else if strings.HasPrefix(query, "=") {
 		return strings.TrimSpace(query[1:]), "EQUAL", false, nil
 	} else if strings.HasPrefix(query, ">=") {
@@ -156,7 +160,7 @@
 		operator_pos := -1
 		for i, ch := range query_str {
 			if allow_inequality {
-				if (ch == '!') || (ch == '=') || (ch == '>') || (ch == '<') {
+				if (ch == '!') || (ch == '=') || (ch == '>') || (ch == '<') || (ch == '~') || (ch == '[') {
 					operator_pos = i
 					break
 				}
