Home | History | Annotate | Download | only in re.matchflag
      1 // -*- C++ -*-
      2 //===----------------------------------------------------------------------===//
      3 //
      4 //                     The LLVM Compiler Infrastructure
      5 //
      6 // This file is dual licensed under the MIT and the University of Illinois Open
      7 // Source Licenses. See LICENSE.TXT for details.
      8 //
      9 //===----------------------------------------------------------------------===//
     10 
     11 // <regex>
     12 
     13 // match_not_bol:
     14 //     The first character in the sequence [first,last) shall be treated as
     15 //     though it is not at the beginning of a line, so the character ^ in the
     16 //     regular expression shall not match [first,first).
     17 
     18 #include <regex>
     19 #include <cassert>
     20 
     21 int main()
     22 {
     23     {
     24     std::string target = "foo";
     25     std::regex re("^foo");
     26     assert( std::regex_match(target, re));
     27     assert(!std::regex_match(target, re, std::regex_constants::match_not_bol));
     28     }
     29 
     30     {
     31     std::string target = "foo";
     32     std::regex re("foo");
     33     assert( std::regex_match(target, re));
     34     assert( std::regex_match(target, re, std::regex_constants::match_not_bol));
     35     }
     36 
     37     {
     38     std::string target = "fooby";
     39     std::regex re("^foo");
     40     assert( std::regex_search(target, re));
     41     assert(!std::regex_search(target, re, std::regex_constants::match_not_bol));
     42     }
     43 
     44     {
     45     std::string target = "fooby";
     46     std::regex re("foo");
     47     assert( std::regex_search(target, re));
     48     assert( std::regex_search(target, re, std::regex_constants::match_not_bol));
     49     }
     50 }
     51