--
-- Regular expression tests
--
-- Don't want to have to double backslashes in regexes
set standard_conforming_strings = on;
-- Test simple quantified backrefs
select 'bbbbb' ~ '^([bc])\1*$' as t;
 t 
---
 t
(1 row)

select 'ccc' ~ '^([bc])\1*$' as t;
 t 
---
 t
(1 row)

select 'xxx' ~ '^([bc])\1*$' as f;
 f 
---
 f
(1 row)

select 'bbc' ~ '^([bc])\1*$' as f;
 f 
---
 f
(1 row)

select 'b' ~ '^([bc])\1*$' as t;
 t 
---
 t
(1 row)

-- Test quantified backref within a larger expression
select 'abc abc abc' ~ '^(\w+)( \1)+$' as t;
 t 
---
 t
(1 row)

select 'abc abd abc' ~ '^(\w+)( \1)+$' as f;
 f 
---
 f
(1 row)

select 'abc abc abd' ~ '^(\w+)( \1)+$' as f;
 f 
---
 f
(1 row)

select 'abc abc abc' ~ '^(.+)( \1)+$' as t;
 t 
---
 t
(1 row)

select 'abc abd abc' ~ '^(.+)( \1)+$' as f;
 f 
---
 f
(1 row)

select 'abc abc abd' ~ '^(.+)( \1)+$' as f;
 f 
---
 f
(1 row)

