// Copyright 2017 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Flags: --regexp-mode-modifiers // These regexps are just grepped out of the other tests we already have // and the syntax changed from out-of-line i flag to inline i flag. assertFalse(/(?i)x(...)\1/.test("x\u03a3\u03c2\u03c3\u03c2\u03c3")); assertTrue(/(?i)\u03a3((?:))\1\1x/.test("\u03c2x"), "backref-UC16-empty"); assertTrue(/(?i)x(?:...|(...))\1x/.test("x\u03a3\u03c2\u03c3x")); assertTrue(/(?i)x(?:...|(...))\1x/.test("x\u03c2\u03c3\u039b\u03a3\u03c2\u03bbx")); assertFalse(/(?i)\xc1/.test('fooA'), "quickcheck-uc16-pattern-ascii-subject"); assertFalse(/(?i)x(...)\1/.test("xaaaaa"), "backref-ASCII-short"); assertTrue(/(?i)x((?:))\1\1x/.test("xx"), "backref-ASCII-empty"); assertTrue(/(?i)x(?:...|(...))\1x/.test("xabcx"), "backref-ASCII-uncaptured"); assertTrue(/(?i)x(?:...|(...))\1x/.test("xabcABCx"), "backref-ASCII-backtrack"); assertFalse(/(?i)f/.test('b')); assertFalse(/(?i)[abc]f/.test('x')); assertFalse(/(?i)[abc]f/.test('xa')); assertFalse(/(?i)[abc]</.test('x')); assertFalse(/(?i)[abc]</.test('xa')); assertFalse(/(?i)f[abc]/.test('x')); assertFalse(/(?i)f[abc]/.test('xa')); assertFalse(/(?i)<[abc]/.test('x')); assertFalse(/(?i)<[abc]/.test('xa')); assertFalse(/(?i)[\u00e5]/.test("\u212b")); assertFalse(/(?i)[\u212b]/.test("\u00e5\u1234")); assertFalse(/(?i)[\u212b]/.test("\u00e5")); assertFalse(/(?i)\u{10400}/.test("\u{10428}")); assertFalse(/(?i)[\u00e5]/.test("\u212b")); assertFalse(/(?i)[\u212b]/.test("\u00e5\u1234")); assertFalse(/(?i)[\u212b]/.test("\u00e5")); assertFalse(/(?i)\u{10400}/.test("\u{10428}")); assertTrue(/(?i)[@-A]/.test("a")); assertTrue(/(?i)[@-A]/.test("A")); assertTrue(/(?i)[@-A]/.test("@")); assertFalse(/(?i)[¿-À]/.test('¾')); assertTrue(/(?i)[¿-À]/.test('¿')); assertTrue(/(?i)[¿-À]/.test('À')); assertTrue(/(?i)[¿-À]/.test('à')); assertFalse(/(?i)[¿-À]/.test('á')); assertFalse(/(?i)[¿-À]/.test('Á')); assertFalse(/(?i)[¿-À]/.test('Á')); assertFalse(/(?i)[Ö-×]/.test('Õ')); assertTrue(/(?i)[Ö-×]/.test('Ö')); assertTrue(/(?i)[Ö-×]/.test('ö')); assertTrue(/(?i)[Ö-×]/.test('×')); assertFalse(/(?i)[Ö-×]/.test('Ø')); assertTrue(/(?i)(a[\u1000A])+/.test('aa')); assertTrue(/(?i)\u0178/.test('\u00ff')); assertTrue(/(?i)\u039c/.test('\u00b5')); assertTrue(/(?i)\u039c/.test('\u03bc')); assertTrue(/(?i)\u00b5/.test('\u03bc')); assertTrue(/(?i)[\u039b-\u039d]/.test('\u00b5')); assertFalse(/(?i)[^\u039b-\u039d]/.test('\u00b5')); assertTrue(/(?m)^bar/.test("bar")); assertTrue(/(?m)^bar/.test("bar\nfoo")); assertTrue(/(?m)^bar/.test("foo\nbar")); assertTrue(/(?m)bar$/.test("bar")); assertTrue(/(?m)bar$/.test("bar\nfoo")); assertTrue(/(?m)bar$/.test("foo\nbar")); assertFalse(/(?m)^bxr/.test("bar")); assertFalse(/(?m)^bxr/.test("bar\nfoo")); assertFalse(/(?m)^bxr/.test("foo\nbar")); assertFalse(/(?m)bxr$/.test("bar")); assertFalse(/(?m)bxr$/.test("bar\nfoo")); assertFalse(/(?m)bxr$/.test("foo\nbar")); assertTrue(/(?m)^.*$/.test("\n")); assertTrue(/(?m)^([()]|.)*$/.test("()\n()")); assertTrue(/(?m)^([()]|.)*$/.test("()\n")); assertTrue(/(?m)^[()]*$/.test("()\n."));