You'll need to use OR logic between each group of properties, and AND logic between the properties within the group, e.g.:
(setq s_ligh
(ssget "_X"
(append
'((-4 . "<OR"))
(apply 'append (mapcar '(lambda ( x ) (append '((-4 . "<AND")) x '((-4 . "AND>")))) ent_list))
'((-4 . "OR>"))
)
)
)
FWIW .. since you're just looking at arrays I'd think your wcmatch could be as simple as this:
(if (wcmatch (getpropertyvalue s "ClassName") "*Array")
(setq ss1 (ssadd s ss1))
)
Instead of clicking and dragging which activates the new lasso selection feature, use two clicks to draw your rectangle. Click once and release to start. Move cursor to other corner, click and release again to finish selection window.