New submission from Serhiy Storchaka <storchaka+cpyt...@gmail.com>:

Currently re supports local inline flags. 'a(?i:b)' matches 'a' 
cases-sensitively, but 'b' case-insensitively. But flags 'a' and 'L' can't be 
scoped to a subpattern. The 'u' flag currently just redundant, it doesn't make 
effect in string patterns, and is not allowed in bytes patterns. They can be 
applied only to the whole pattern. I think it would be nice to make them local.

The example of the problem that this can solve is issue31672. Currently '[a-z]' 
in Unicode case-insensitive mode matches not only Latin letters from ;a' to 'z' 
and from 'A' to 'Z', but also characters 'İ', 'ı', 'ſ' and 'K' which are 
equivalent to 'i', 's' and 'k' correspondingly. With local 'a' and 'u' flags 
you can use ASCII and Unicode ranges in the same pattern.

I'm working on the patch.

----------
assignee: serhiy.storchaka
components: Library (Lib), Regular Expressions
messages: 303693
nosy: ezio.melotti, mrabarnett, serhiy.storchaka
priority: normal
severity: normal
stage: needs patch
status: open
title: Make RE "a", "L" and "u" inline flags local
type: enhancement
versions: Python 3.7

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue31690>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to