notepad-plus-plus / notepad-plus-plus/notepad-plus-plus

[BUG] RegEx fails to detect some Unicode char if prefixed by other characters

Open
#16,423 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
29.4k
Forks
5.4k
PR merge metrics
No merged PRs in 30d

Description

Is there an existing issue for this?
  • I have searched the existing issues
Description of the Issue

RegEx fails to detect Unicode character (Ex: 𝘰) if prefixed by other characters (Ex: N)

Steps To Reproduce
  1. Open Notepad++ and create new .txt file
  2. Paste below lines in new text file
No
N𝘰
𝘰
  1. Open find/replace dialogue box and find [NnƝ]+[Ooοᴑօ0𝘰]+
  2. Then, find [Ooοᴑօ0𝘰]+
Current Behavior

Find [NnƝ]+[Ooοᴑօ0𝘰]+ detects characters only in the 1st line in N++ but detects characters in 1st and 2nd lines in regex101

Image

Find [Ooοᴑօ0𝘰]+ detects characters in all three lines

Image

Expected Behavior

Find [NnƝ]+[Ooοᴑօ0𝘰]+ should detect characters in 1st and 2nd lines

Debug Information
Notepad++ v8.7.9   (64-bit)
Build time : Mar 26 2025 - 03:20:28
Scintilla/Lexilla included : 5.5.5/5.4.3
Boost Regex included : 1_85
Path : D:\Data\usb x64\Notepad++\notepad++.exe
Command Line : "D:\Mobile\internal\Books\Longevity, starting from being - East Sea Fish Head.txt"
Admin mode : OFF
Local Conf mode : ON
Cloud Config : OFF
Periodic Backup : ON
Placeholders : OFF
Scintilla Rendering Mode : SC_TECHNOLOGY_DEFAULT (0)
Multi-instance Mode : monoInst
File Status Auto-Detection : cdEnabledNew (for current file/tab only)
Dark Mode : ON
OS Name : Windows 11 Home Single Language (64-bit)
OS Version : 24H2
OS Build : 26100.3476
Current ANSI codepage : 1252
Plugins : 
    AutoSave (2)
    BracketsCheck (1.2.2)
    ComparePlus (1.2)
    DSpellCheck (1.5)
    ExtSettings (1.3.1)
    FileFinder (0.3)
    Linefilter3 (1)
    MenuIcons (2.0.7)
    mimeTools (3.1)
    nppAutoDetectIndent (2.3)
    NppMenuSearch (0.9.6)
    NppTextFX (1.4.1)
    _CustomizeToolbar (5.3)
Anything else?

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the pattern in the Find/Replace dialogue using the three lines and compare the two searches. Trace the Unicode matching behavior in the regex implementation identified by the Boost Regex version, then verify that [NnƝ]+[Ooοᴑօ0𝘰]+ matches the first and second lines without changing the existing single-class behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
search
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.