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#include "test_macros.h"
21
22int main()
23{
24    {
25    std::string target = "foo";
26    std::regex re("^foo");
27    assert( std::regex_match(target, re));
28    assert(!std::regex_match(target, re, std::regex_constants::match_not_bol));
29    }
30
31    {
32    std::string target = "foo";
33    std::regex re("foo");
34    assert( std::regex_match(target, re));
35    assert( std::regex_match(target, re, std::regex_constants::match_not_bol));
36    }
37
38    {
39    std::string target = "fooby";
40    std::regex re("^foo");
41    assert( std::regex_search(target, re));
42    assert(!std::regex_search(target, re, std::regex_constants::match_not_bol));
43    }
44
45    {
46    std::string target = "fooby";
47    std::regex re("foo");
48    assert( std::regex_search(target, re));
49    assert( std::regex_search(target, re, std::regex_constants::match_not_bol));
50    }
51}
52