###

# Boost.Regex

## match_flag_type

###

### Synopsis

The type `match_flag_type` is an implementation specific bitmask type (17.3.2.1.2) that controls how a regular expression is matched against a character sequence. The behavior of the format flags is descibed in more detail in the format syntax guide.

    namespace boost{ namespace regex_constants{

    typedef implementation-specific-bitmask-type match_flag_type;

    static const match_flag_type match_default = 0;
    static const match_flag_type match_not_bob;
    static const match_flag_type match_not_eob;
    static const match_flag_type match_not_bol;
    static const match_flag_type match_not_eol;
    static const match_flag_type match_not_bow;
    static const match_flag_type match_not_eow;
    static const match_flag_type match_any;
    static const match_flag_type match_not_null;
    static const match_flag_type match_continuous;
    static const match_flag_type match_partial;
    static const match_flag_type match_single_line;
    static const match_flag_type match_prev_avail;
    static const match_flag_type match_not_dot_newline;
    static const match_flag_type match_not_dot_null;

    static const match_flag_type format_default = 0;
    static const match_flag_type format_sed;
    static const match_flag_type format_perl;
    static const match_flag_type format_no_copy;
    static const match_flag_type format_first_only;
    static const match_flag_type format_all;

    } // namespace regex_constants
    } // namespace boost

### Description

The type `match_flag_type` is an implementation specific bitmask type (17.3.2.1.2). When matching a regular expression against a sequence of characters [first, last) then setting its elements has the effects listed in the table below:

Element | Effect if set
match_default | Specifies that matching of regular expressions proceeds without any modification of the normal rules used in ECMA-262, ECMAScript Language Specification, Chapter 15 part 10, RegExp (Regular Expression) Objects (FWD.1)
match_not_bob | Specifies that the expression "\A" should not match against the sub-sequence [first,first).
match_not_eob | Specifies that the expressions "\z" and "\Z" should not match against the sub-sequence [last,last).
match_not_bol | Specifies that the expression "^" should not be matched against the sub-sequence [first,first).
match_not_eol | Specifies that the expression "$" should not be matched against the sub-sequence [last,last).
match_not_bow | Specifies that the expression "\b" should not be matched against the sub-sequence [first,first).
match_not_eow | Specifies that the expression "\b" should not be matched against the sub-sequence [last,last).
match_any | Specifies that if more than one match is possible then any match is an acceptable result.
match_not_null | Specifies that the expression can not be matched against an empty sequence.
match_continuous | Specifies that the expression must match a sub-sequence that begins at first.
match_partial | Specifies that if no match can be found, then it is acceptable to return a match [from, last) where from!=last, if there exists some sequence of characters [from,to) of which [from,last) is a prefix, and which would result in a full match.
match_extra | Instructs the matching engine to retain all available capture information; if a capturing group is repeated then information about every repeat is available via match_results::captures() or sub_match_captures().
match_single_line | Equivalent to Perl's s/ modifier; prevents ^ from matching after an embedded newline character (so that it only matches at the start of the text being matched), and $ from matching before an embedded newline (so that it only matches at the end of the text being matched).
match_prev_avail | Specifies that `--first` is a valid iterator position, when this flag is set then the flags `match_not_bol` and `match_not_bow` are ignored by the regular expression algorithms (RE.7) and iterators (RE.8).
match_not_dot_newline | Specifies that the expression "." does not match a newline character.
match_not_dot_null | Specified that the expression "." does not match a character null '\0'.

format_default

Specifies that when a regular expression match is to be replaced by a new string, that the new string is constructed using the rules used by the ECMAScript replace function in ECMA-262, ECMAScript Language Specification, Chapter 15 part 5.4.11 String.prototype.replace. (FWD.1). In addition during search and replace operations then all non-overlapping occurrences of the regular expression are located and replaced, and sections of the input that did not match the expression, are copied unchanged to the output string.

format_sed | Specifies that when a regular expression match is to be replaced by a new string, that the new string is constructed using the rules used by the Unix sed utility in IEEE Std 1003.1-2001, Portable Operating SystemInterface (POSIX ), Shells and Utilities..
format_perl | Specifies that when a regular expression match is to be replaced by a new string, that the new string is constructed using the same rules as Perl 5.
format_all | Specifies that all syntax extensions are enabled, including conditional (?ddexpression1:expression2) replacements: see the format string guide for more details.
format_no_copy | When specified during a search and replace operation, then sections of the character container sequence being searched that do match the regular expression, are not copied to the output string.
format_first_only | When specified during a search and replace operation, then only the first occurrence of the regular expression is replaced.

Revised 04 Feb 2004

© Copyright John Maddock 1998- 2004

Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)