Yes, it is possible to use "CONTAINS" as a predicate operator as stated in
here. However, specifically in your sample code, you don't need to include the asterisk(*) in your "values" field to achieve your desired result since the asterisk is not a sub-string of your ad group names. "CONTAINS" operator checks for fields that contains the given value as a sub-string. So for example, if you have a field "Name", with operator "CONTAINS" and values "adgroup" in your predicate, it should return ad groups with names 'adgroup1', 'adgroup2', and the like.
Hope this helps. Let me know should you have further concerns.