The Perl Advent Calendar needs more articles for 2022. Submit your idea today!
package Search::Tools::RegEx;
use Moo;
extends 'Search::Tools::Object';
use Carp;
use overload
    '""'     => sub { $_[0]->term; },
    'bool'   => sub {1},
    fallback => 1;

#use Data::Dump qw( dump );

use namespace::autoclean;

our $VERSION = '1.007';

my @ro_attrs = qw(
    plain
    html
    term
    term_re
    is_phrase
    phrase_terms
);

for my $attr (@ro_attrs) {
    has $attr => ( is => 'ro' );
}

=head1 NAME

Search::Tools::RegEx - regular expressions for terms

=head1 SYNOPSIS

 my $regex = $query->regex_for('foo');
 like( 'foo', $regex->plain, "matches plain (no markup)");
 like( 'foo', $regex->html,  "matches html (with markup)");
 ok( ! $regex->is_phrase, "foo is not a phrase");
 is( 'foo', $regex->term, "foo is the term");

=head1 DESCRIPTION


=head1 METHODS

=head2 plain

=head2 html

=head2 term

=head2 term_re

=head2 is_phrase

=head2 phrase_terms

If B<is_phrase> is true, B<phrase_terms> will contain an ARRAY ref
of Search::Tools::RegEx objects, each one representing a term
in the phrase.

=cut

1;

__END__

=head1 AUTHOR

Peter Karman C<< <karman@cpan.org> >>

=head1 BUGS

Please report any bugs or feature requests to C<bug-search-tools at rt.cpan.org>, or through
the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Search-Tools>.  
I will be notified, and then you'll
automatically be notified of progress on your bug as I make changes.

=head1 SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Search::Tools


You can also look for information at:

=over 4

=item * RT: CPAN's request tracker

L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=Search-Tools>

=item * AnnoCPAN: Annotated CPAN documentation

L<http://annocpan.org/dist/Search-Tools>

=item * CPAN Ratings

L<http://cpanratings.perl.org/d/Search-Tools>

=item * Search CPAN

L<http://search.cpan.org/dist/Search-Tools/>

=back

=head1 COPYRIGHT

Copyright 2009 by Peter Karman.

This package is free software; you can redistribute it and/or modify it under the 
same terms as Perl itself.

=head1 SEE ALSO

Search::Tools::Query