What is the difference between these queries - Mailing list pgsql-general

From salah jubeh
Subject What is the difference between these queries
Date
Msg-id 828595.84001.qm@web161519.mail.bf1.yahoo.com
Whole thread Raw
Responses Re: What is the difference between these queries
List pgsql-general

Query1
-- the first select return 10 rows
SELECT a, b
FROM table1 LEFT JOIN table2 on (table1_id = tabl2_id)
Where table1_id NOT IN (SELECT DISTINCT table1_id FROM table3)
EXCEPT
-- this select return 5 rows
SELECT a, b
FROM table1 LEFT JOIN table2 on (table1_id = tabl2_id)
Where table1_id NOT IN (SELECT DISTINCT table1_id FROM table3)
and  b ~* 'pattern'
-- the result is 5 rows

Query2
--this select return 3 rows
SELECT a, b
FROM table1 LEFT JOIN table2 on (table1_id = tabl2_id)
Where table1_id NOT IN (SELECT DISTINCT table1_id FROM table3)
and  b !~* 'pattern'

Why query1 and query2  return different set. note that query two return a subset of query1

pgsql-general by date:

Previous
From: "Sven Haag"
Date:
Subject: Multiple Results with crosstab function
Next
From: AI Rumman
Date:
Subject: pg_connect connection problem