PostgreSQL9.6でしか確かめていないのと、実践的に使えるのか分かりませんが、次のようにすればCHECK制約でパターンマッチするものだけ登録することができます。コメントアウトしている方のCHECK制約でも多分、同じ結果になると思います。
DROP TABLE IF EXISTS AccessLog;
CREATE TABLE AccessLog (
url VARCHAR(200) NOT NULL
-- CHECK(SUBSTRING(url FROM 'https?://([^/]*)') IS NOT NULL)
CHECK(url ~ 'https?://[^/*]')
);
INSERT INTO AccessLog VALUES('http://wwww.example.com');
INSERT INTO AccessLog VALUES('https://foo.bar');
INSERT INTO AccessLog VALUES('Hello World'); -- エラー発生