The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
##############################################################################
#      $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/distributions/Perl-Critic/t/RegularExpressions/RequireExtendedFormatting.run $
#     $Date: 2011-11-26 15:54:50 -0800 (Sat, 26 Nov 2011) $
#   $Author: wyant $
# $Revision: 4095 $
##############################################################################

## name basic passes
## failures 0
## cut

my $string =~ m{pattern};
my $string =~ m{pattern}gim;
my $string =~ m{pattern}gis;
my $string =~ m{pattern}gms;

my $string =~ m{pattern.}x;
my $string =~ m{pattern.}gimx;
my $string =~ m{pattern.}gixs;
my $string =~ m{pattern.}xgms;

my $string =~ m/pattern./x;
my $string =~ m/pattern./gimx;
my $string =~ m/pattern./gixs;
my $string =~ m/pattern./xgms;

my $string =~ /pattern./x;
my $string =~ /pattern./gimx;
my $string =~ /pattern./gixs;
my $string =~ /pattern./xgms;

my $string =~ s/pattern./foo/x;
my $string =~ s/pattern./foo/gimx;
my $string =~ s/pattern./foo/gixs;
my $string =~ s/pattern./foo/xgms;

my $string =~ s/pattern/foo./;
my $string =~ s/pattern/foo./gim;
my $string =~ s/pattern/foo./gis;
my $string =~ s/pattern/foo./gms;

my $re =~ qr/pattern./x;

#-----------------------------------------------------------------------------

## name basic failures
## failures 17
## cut

my $string =~ m{pattern.};
my $string =~ m{pattern.}gim;
my $string =~ m{pattern.}gis;
my $string =~ m{pattern.}gms;

my $string =~ m/pattern./;
my $string =~ m/pattern./gim;
my $string =~ m/pattern./gis;
my $string =~ m/pattern./gms;

my $string =~ /pattern./;
my $string =~ /pattern./gim;
my $string =~ /pattern./gis;
my $string =~ /pattern./gms;

my $string =~ s/pattern./foo/;
my $string =~ s/pattern./foo/gim;
my $string =~ s/pattern./foo/gis;
my $string =~ s/pattern./foo/gms;

my $re =~ qr/pattern./;

#-----------------------------------------------------------------------------

## name tr and y formatting
## failures 0
## cut

my $string =~ tr/[A-Z]/[a-z]/;
my $string =~ tr|[A-Z]|[a-z]|;
my $string =~ tr{[A-Z]}{[a-z]};

my $string =~ y/[A-Z]/[a-z]/;
my $string =~ y|[A-Z]|[a-z]|;
my $string =~ y{[A-Z]}{[a-z]};

my $string =~ tr/[A-Z]/[a-z]/cds;
my $string =~ y/[A-Z]/[a-z]/cds;


#-----------------------------------------------------------------------------

## name minimum_regex_length_to_complain_about, pass
## failures 0
## parms { minimum_regex_length_to_complain_about => 5 }
## cut

my $string =~ m/foo./;

my $string =~ s/foo.//;
my $string =~ s/foo./bar/;
my $string =~ s/foo./barbarbar/;
my $string =~ s/1234.//;


#-----------------------------------------------------------------------------

## name minimum_regex_length_to_complain_about, fail
## failures 2
## parms { minimum_regex_length_to_complain_about => 5 }
## cut

my $string =~ m/fooba./;

my $string =~ s/fooba.//;


#-----------------------------------------------------------------------------

## name strict
## failures 2
## parms { strict => 1 }
## cut

my $string =~ m/foobar/;

my $string =~ s/foobar/foo bar/;

#-----------------------------------------------------------------------------

## name use re '/x' - RT #72151
## failures 0
## cut

use re '/x';
my $string =~ m{pattern.};

#-----------------------------------------------------------------------------

## name use re qw{ /x } - RT #72151
## failures 0
## cut

use re qw{ /x };
my $string =~ m{pattern.};

#-----------------------------------------------------------------------------

## name use re qw{ /x } not in scope - RT #72151
## failures 1
## cut

{
    use re qw{ /x };
}
my $string =~ m{pattern.};

#-----------------------------------------------------------------------------

## name no re qw{ /x } - RT #72151
## failures 1
## cut

use re qw{ /smx };
{
    no re qw{ /x };
    my $string =~ m{pattern.};
}

#-----------------------------------------------------------------------------
# Local Variables:
#   mode: cperl
#   cperl-indent-level: 4
#   fill-column: 78
#   indent-tabs-mode: nil
#   c-indentation-style: bsd
# End:
# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :