
DROP DOMAIN IF EXISTS D_EMAIL;

-- http://tools.ietf.org/html/rfc819
-- (Schachtelung von Ausdrücken erlaubt => REGEXP nicht möglich)
-- http://www.postgresql.org/docs/9.1/static/functions-matching.html
CREATE DOMAIN D_EMAIL AS
  VARCHAR
  CHECK (VALUE ~ '\A(([a-zA-Z0-9][\w-]*)\.)*([a-zA-Z0-9][\w-]*)@(([a-zA-Z0-9][\w-]*)\.)+[a-zA-Z]{2,}\Z')
;

-- Tabelle zum Testen von reulären Ausdrücken.
CREATE TABLE regexp
(
  blabla VARCHAR,
  email  D_EMAIL
)
;


-- Daten zum Testen von regulären Ausdrücken.
INSERT INTO regexp (blabla)
VALUES
('Wir gehen zum Essen und Trinken'),
('Essen ist eine schöne Stadt'),
('Es gibt keine Stadt, die Trinken heißt'),
('a'), ('aa'), ('aaa'), ('aaaa'), ('aaaaa'), ('aaaaaa'),
(' a '), (' aa '), (' aaa '), (' aaaa '), (' aaaaa '), (' aaaaaa '),
('ABCdefABC'),
('ABCdefABC\n<?php ...'),
('123241124'),
('-123123'),
('+ 123123'),
('')
;

-- E-Mail-Check
INSERT INTO regexp (email)
VALUES
('kowa@hs-augsburg.de'),
('wolfgang@kowarschick.de')
;


/* -- Fehler!!
INSERT INTO regexp (email)
VALUES
('kowa@@hs-augsburg.de')
;

INSERT INTO regexp (email)
VALUES
('wolfgang@kowarschick..de')
;
*/
