# Simple case: OK - matches "a" or "b" $ perl -E 'my $re = "a|b"; $re = qr{$re}; say $re' (?^u:a|b) # Complex case: NOT OK - matches "Xa" or "bY" $ perl -E 'my $re = "a|b"; $re = qr{X${re}Y}; say $re' (?^u:Xa|bY) # Complex case: OK - matches "a" or "b" [fixed with "(?:...)"] $ perl -E 'my $re = "(?:a|b)"; $re = qr{X${re}Y}; say $re' (?^u:X(?:a|b)Y)