@@ -220,6 +220,31 @@ export class Pattern {
220
220
return { ignorecase : true } ;
221
221
} else if ( escaped === 'C' ) {
222
222
return { ignorecase : false } ;
223
+ } else if ( escaped === 'x' ) {
224
+ return '[0-9A-Fa-f]' ; // Hex digit
225
+ } else if ( escaped === 'X' ) {
226
+ return '[^0-9A-Fa-f]' ; // Non-hex digit
227
+ } else if ( escaped === 'o' ) {
228
+ return '[0-7]' ; // Octal digit
229
+ } else if ( escaped === 'o' ) {
230
+ return '[^0-7]' ; // Non-octal digit
231
+ } else if ( escaped === 'h' ) {
232
+ return '[A-Za-z_]' ; // Head of word character
233
+ } else if ( escaped === 'H' ) {
234
+ return '[^A-Za-z_]' ; // Non-head of word character
235
+ } else if ( escaped === 'a' ) {
236
+ return '[A-Za-z]' ; // Alphabetic character
237
+ } else if ( escaped === 'A' ) {
238
+ return '[^A-Za-z]' ; // Non-alphabetic character
239
+ } else if ( escaped === 'l' ) {
240
+ // TODO: Lowercase and uppercase don't work with ignorecase
241
+ return '[a-z]' ; // Lowercase character
242
+ } else if ( escaped === 'L' ) {
243
+ return '[^a-z]' ; // Non-lowercase character
244
+ } else if ( escaped === 'u' ) {
245
+ return '[A-Z]' ; // Uppercase character
246
+ } else if ( escaped === 'U' ) {
247
+ return '[^A-Z]' ; // Non-uppercase character
223
248
} else if ( escaped === '<' || escaped === '>' ) {
224
249
// TODO: not QUITE the same
225
250
return '\\b' ;
0 commit comments