Remove from the environment variables that satisfy the conditions

Only variables that are functions with a specific name pattern need to be removed from the environment
For example, you want to remove all functions that contain code and whose names start with ABC. Yes, this can be easily done with a :foreach loop, but I want to do without it.

Here are the beginnings of designs to help:

(([/system script environment get [/system script environment find name=$i] value]="(code)") or ([:len [:find [/system script environment get [/system script environment find name=$i] value] "(eval"]]>0))

/system script environment remove [find where (name~"^ABC")]

/system script environment remove [find where (name~"^ABC") and ([:typeof]="array")]

Help build the right design.

/system script environment remove [find where (value~"^;\\(eva\?l ") and (name~"^ABC")]

Add and ([:typeof $value]=“array”) is superfluos.

Thank you very much. And if among the candidates for deletion there are functions created by the [:parse] method with content (code) ?

/system script environment remove [find where (value~"^;\\(eva\?l ") and (value~"code") and (name~"^ABC")]

OK?

/system script environment remove [find where (((value~"^;\\(eva\?l ") or (value~"code")) and (name~"^ABC")]

Or so ?

/system script environment remove [find where (value~"^(\\(code\\)|;\\(eva\?l )") and (name~"^ABC")]

Wow!

(\(code\)

Why is code escaped with two slashes on both sides ?

Is one \ escaping (, and the second \ escaping the first \ ?

ALL OK

Since ( and ) are symbols on regext that start and end one condition, must be escaped with
Since \ is a reserved RouterOS character, must be wrted two times for represent \ on regex