対象はGooleCloudBigqueryですが、Postgres等Arrayを持っているDBも同様と思います

id:1, arr_val: [{"a":"111"},{"a":"222"},{"a":"333"}]
id:2, arr_val: [{"a":"222"},{"a":"444"},{"a":"666"}]
・・・

といったデータ構造の時に
"a"が111と222両方を含む要素を持ったレコードを抽出したいです。
(例の場合id1のレコードが引っかかるようにしたいです。)

  SELECT
    arr_val
  FROM
    `テーブル名`,
    UNNEST(arr_val) AS line
  WHERE
    REGEXP_CONTAINS(line.a, r"正規表現") )  #条件1
    and
    REGEXP_CONTAINS(line.a, r"正規表現") )  #条件2

の様にやってみましたが、条件が一つの時はそれぞれうまく行きますが
AND条件とすると検索結果が0となってしまいました。