--- str re (?^u:..) matched, captured () matched, captured () --- str re (?^u:(.)(.)) matched, captured ("A", "B") matched, captured ("A", "B") --- str re (?^u:(X)?(.)) matched, captured (undef, "A") matched, captured (undef, "A") --- str re (?^u:XY) NO match --- str re (?^u:(X)Y) NO match --- str re (?^u:) matched, captured () matched, captured () --- str <> re (?^u:..) NO match --- str <> re (?^u:(.)(.)) NO match --- str <> re (?^u:(X)?(.)) NO match --- str <> re (?^u:XY) NO match --- str <> re (?^u:(X)Y) NO match --- str <> re (?^u:) matched, captured () matched, captured ()