| line | % | coverage | branch | 
|---|
| 187 | 100 | T | F | unless defined $regex | 
| 190 | 100 | T | F | ref $regex eq 'Regexp' ? : | 
| 220 | 100 | T | F | if (defined $str and $str =~ /^$regex$/) | 
| 225 | 0 | T | F | if ($ENV{'DEBUG_REGEX_GEN'} and $@) | 
| 232 | 50 | T | F | if $str =~ /^$regex$/ | 
| 246 | 50 | T | F | if ($regex_str =~ /\\d/ or $regex_str =~ /\[0-9\]/ or $regex_str =~ /\[\^[^\]]*[A-Za-z]/) { } | 
|  | 50 | T | F | elsif ($regex_str =~ /\[A-Z\]/ or $regex_str =~ /\[A-Z[^\]]*\]/) { } | 
|  | 50 | T | F | elsif ($regex_str =~ /\[a-z\]/ or $regex_str =~ /\[a-z[^\]]*\]/) { } | 
|  | 50 | T | F | elsif ($regex_str =~ /\\w/ or $regex_str =~ /\[a-zA-Z0-9_\]/) { } | 
| 316 | 100 | T | F | unless defined $count and $count > 0 | 
| 320 | 100 | T | F | if ($unique) { } | 
| 332 | 100 | T | F | if (keys %seen < $count) | 
| 368 | 100 | T | F | unless defined $seed | 
| 398 | 100 | T | F | if ($info->{'complexity'} eq "very_complex") | 
| 411 | 50 | T | F | if ($info->{'features'}{'has_backreferences'} and $pattern =~ /(\(\w+\)).*\\\d+/) | 
| 425 | 100 | T | F | if ($pattern =~ /\{(\d+),(\d+)\}/) | 
| 427 | 100 | T | F | if ($max - $min > 10) | 
| 443 | 100 | T | F | if ($info->{'features'}{'has_alternation'}) | 
| 445 | 100 | T | F | if (@alts > 10) | 
| 458 | 50 | T | F | if ($pattern =~ /\(([a-zA-Z])\|([a-zA-Z])\|([a-zA-Z])\)/) | 
| 474 | 100 | T | F | if ($info->{'features'}{'has_lookahead'} or $info->{'features'}{'has_lookbehind'}) | 
| 479 | 50 | T | F | if ($simpler ne $pattern) | 
| 492 | 100 | T | F | if ($info->{'features'}{'has_unicode'} and $pattern =~ /\\p\{L\}/) | 
| 506 | 50 | T | F | if ($pattern =~ /([a-zA-Z]{20,})/) | 
| 536 | 100 | T | F | unless defined $string | 
| 563 | 100 | T | F | if $self->{'_pattern_info_cache'} | 
| 571 | 100 | T | F | $pattern =~ /\|/ ? : | 
|  | 100 | T | F | $pattern =~ /(\\[1-9]|\\k<)/ ? : | 
|  | 100 | T | F | $pattern =~ /\\p\{/ ? : | 
|  | 100 | T | F | $pattern =~ /\(\?[=!]/ ? : | 
|  | 100 | T | F | $pattern =~ /\(\?<[=!]/ ? : | 
|  | 100 | T | F | $pattern =~ /\(\?</ ? : | 
|  | 100 | T | F | $pattern =~ /(?:[+*?]\+|\{\d+(?:,\d*)?\}\+)/ ? : | 
| 609 | 100 | T | F | if (defined $1 or defined $2 and $2) { } | 
|  | 100 | T | F | elsif (defined $3) { } | 
| 614 | 100 | T | F | if ($last_was_atom) { } | 
| 617 | 100 | T | F | defined $4 ? : | 
| 622 | 100 | T | F | defined $4 ? : | 
| 636 | 50 | T | F | if $min < 0 | 
| 637 | 50 | T | F | if $max < $min | 
| 651 | 100 | T | F | if $features->{'has_alternation'} | 
| 652 | 100 | T | F | if $features->{'has_backreferences'} | 
| 653 | 100 | T | F | if $features->{'has_unicode'} | 
| 654 | 100 | T | F | if $features->{'has_lookahead'} | 
| 655 | 100 | T | F | if $features->{'has_lookbehind'} | 
| 656 | 100 | T | F | if $features->{'has_named_groups'} | 
| 657 | 100 | T | F | if $features->{'has_possessive'} | 
| 660 | 100 | T | F | if $score < 3 | 
| 661 | 100 | T | F | if $score < 7 | 
| 662 | 100 | T | F | if $score < 12 | 
| 695 | 100 | T | F | if ($char eq '\\') { } | 
|  | 100 | T | F | elsif ($char eq '[') { } | 
|  | 100 | T | F | elsif ($char eq '(') { } | 
|  | 100 | T | F | elsif ($char eq '.') { } | 
|  | 50 | T | F | elsif ($char eq '|') { } | 
|  | 100 | T | F | elsif ($char =~ /[+*?]/ or $char eq '{') { } | 
|  | 100 | T | F | elsif ($char =~ /[\w ]/) { } | 
| 700 | 100 | T | F | if ($next =~ /[1-9]/) { } | 
|  | 100 | T | F | elsif ($next eq 'k' and substr($pattern, $i + 1, 1) eq '<') { } | 
|  | 100 | T | F | elsif ($next eq 'p' and substr($pattern, $i + 1, 1) eq '{') { } | 
|  | 100 | T | F | elsif ($next eq 'd') { } | 
|  | 100 | T | F | elsif ($next eq 'w') { } | 
|  | 100 | T | F | elsif ($next eq 's') { } | 
|  | 100 | T | F | elsif ($next eq 'D') { } | 
|  | 100 | T | F | elsif ($next eq 'W') { } | 
|  | 100 | T | F | elsif ($next eq 't') { } | 
|  | 100 | T | F | elsif ($next eq 'n') { } | 
|  | 50 | T | F | elsif ($next eq 'r') { } | 
| 703 | 50 | T | F | if (exists $self->{'backrefs'}{$ref_num}) { } | 
| 712 | 50 | T | F | if (exists $self->{'named_refs'}{$name}) { } | 
| 769 | 50 | T | F | if $end == -1 | 
| 780 | 50 | T | F | if $end == -1 | 
| 791 | 100 | T | F | if ($group_content =~ /^\?:/) { } | 
|  | 100 | T | F | elsif ($group_content =~ /^\?<([^>]+)>/) { } | 
|  | 100 | T | F | elsif ($group_content =~ /^\?=/) { } | 
|  | 100 | T | F | elsif ($group_content =~ /^\?!/) { } | 
|  | 100 | T | F | elsif ($group_content =~ /^\?<=/) { } | 
|  | 100 | T | F | elsif ($group_content =~ /^\?<!/) { } | 
| 824 | 100 | T | F | if ($is_lookahead) { } | 
|  | 100 | T | F | elsif ($is_lookbehind) { } | 
| 827 | 100 | T | F | unless ($is_negative) | 
| 843 | 100 | T | F | if ($group_content =~ /\|/) { } | 
| 850 | 100 | T | F | if ($is_capturing) | 
| 854 | 100 | T | F | if (defined $group_name) | 
| 901 | 100 | T | F | if ($check_possessive and $pos + 2 < length $pattern) | 
| 903 | 100 | T | F | if ($next =~ /[+*?]/ || $next eq '}' and $after_next eq "+") | 
| 908 | 100 | T | F | if ($next eq '{') { } | 
|  | 100 | T | F | elsif ($next eq '+') { } | 
|  | 100 | T | F | elsif ($next eq '*') { } | 
|  | 100 | T | F | elsif ($next eq '?') { } | 
| 910 | 50 | T | F | if $end == -1 | 
| 914 | 100 | T | F | if ($check_possessive and $end + 1 < length $pattern and substr($pattern, $end + 1, 1) eq "+") | 
| 920 | 100 | T | F | if ($quant =~ /^(\d+)$/) { } | 
|  | 50 | T | F | elsif ($quant =~ /^(\d+),(\d+)$/) { } | 
|  | 0 | T | F | elsif ($quant =~ /^(\d+),$/) { } | 
| 936 | 100 | T | F | if ($is_possessive) | 
| 946 | 100 | T | F | if ($is_possessive) | 
| 956 | 100 | T | F | if ($is_possessive) | 
| 959 | 50 | T | F | rand() < 0.5 ? : | 
| 976 | 100 | T | F | if ($char eq '(') { } | 
|  | 100 | T | F | elsif ($char eq ')') { } | 
|  | 100 | T | F | elsif ($char eq '|' and $depth == 0) { } | 
| 989 | 50 | T | F | if length $current | 
| 1002 | 100 | T | F | if ($char eq '[' and $i == $start || substr($pattern, $i - 1, 1) ne '\\') { } | 
|  | 100 | T | F | elsif ($char eq ']' and substr($pattern, $i - 1, 1) ne '\\') { } | 
| 1006 | 50 | T | F | if $depth == 0 | 
| 1018 | 100 | T | F | $i > 0 ? : | 
| 1020 | 100 | T | F | if ($char eq '(' and $prev ne '\\') { } | 
|  | 100 | T | F | elsif ($char eq ')' and $prev ne '\\') { } | 
| 1024 | 100 | T | F | if $depth == 0 | 
| 1037 | 100 | T | F | if (substr($class, 0, 1) eq "^") | 
| 1047 | 100 | T | F | if ($char eq '\\') { } | 
|  | 100 | T | F | elsif ($i + 2 < length $class and substr($class, $i + 1, 1) eq '-') { } | 
| 1050 | 100 | T | F | if ($next eq 'd') { } | 
|  | 100 | T | F | elsif ($next eq 'w') { } | 
|  | 50 | T | F | elsif ($next eq 's') { } | 
|  | 50 | T | F | elsif ($next eq 'p' and substr($class, $i + 1, 1) eq '{') { } | 
| 1076 | 100 | T | F | if ($negate) | 
| 1081 | 50 | T | F | @chars ? : | 
| 1087 | 50 | T | F | @chars ? : | 
| 1094 | 100 | T | F | if ($prop eq 'L' or $prop eq 'Letter') { } | 
|  | 100 | T | F | elsif ($prop eq 'N' or $prop eq 'Number') { } | 
|  | 100 | T | F | elsif ($prop eq 'Lu' or $prop eq 'Uppercase_Letter') { } | 
|  | 50 | T | F | elsif ($prop eq 'Ll' or $prop eq 'Lowercase_Letter') { } | 
|  | 0 | T | F | elsif ($prop eq 'P' or $prop eq 'Punctuation') { } | 
|  | 0 | T | F | elsif ($prop eq 'S' or $prop eq 'Symbol') { } | 
|  | 0 | T | F | elsif ($prop eq 'Z' or $prop eq 'Separator') { } | 
|  | 0 | T | F | elsif ($prop eq 'Nd' or $prop eq 'Decimal_Number') { } |