]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/regex/doc/html/boost_regex/background_information/locale.html
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / regex / doc / html / boost_regex / background_information / locale.html
CommitLineData
7c673cae
FG
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4<title>Localization</title>
5<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
7<link rel="home" href="../../index.html" title="Boost.Regex 5.1.2">
8<link rel="up" href="../background_information.html" title="Background Information">
9<link rel="prev" href="headers.html" title="Headers">
10<link rel="next" href="thread_safety.html" title="Thread Safety">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="headers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../background_information.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_safety.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h3 class="title">
27<a name="boost_regex.background_information.locale"></a><a class="link" href="locale.html" title="Localization">Localization</a>
28</h3></div></div></div>
29<p>
30 Boost.Regex provides extensive support for run-time localization, the localization
31 model used can be split into two parts: front-end and back-end.
32 </p>
33<p>
34 Front-end localization deals with everything which the user sees - error
35 messages, and the regular expression syntax itself. For example a French
36 application could change [[:word:]] to [[:mot:]] and \w to \m. Modifying
37 the front end locale requires active support from the developer, by providing
38 the library with a message catalogue to load, containing the localized strings.
39 Front-end locale is affected by the LC_MESSAGES category only.
40 </p>
41<p>
42 Back-end localization deals with everything that occurs after the expression
43 has been parsed - in other words everything that the user does not see or
44 interact with directly. It deals with case conversion, collation, and character
45 class membership. The back-end locale does not require any intervention from
46 the developer - the library will acquire all the information it requires
47 for the current locale from the underlying operating system / run time library.
48 This means that if the program user does not interact with regular expressions
49 directly - for example if the expressions are embedded in your C++ code -
50 then no explicit localization is required, as the library will take care
51 of everything for you. For example embedding the expression [[:word:]]+ in
52 your code will always match a whole word, if the program is run on a machine
53 with, for example, a Greek locale, then it will still match a whole word,
54 but in Greek characters rather than Latin ones. The back-end locale is affected
55 by the LC_TYPE and LC_COLLATE categories.
56 </p>
57<p>
58 There are three separate localization mechanisms supported by Boost.Regex:
59 </p>
60<h5>
61<a name="boost_regex.background_information.locale.h0"></a>
62 <span class="phrase"><a name="boost_regex.background_information.locale.win32_localization_model"></a></span><a class="link" href="locale.html#boost_regex.background_information.locale.win32_localization_model">Win32
63 localization model.</a>
64 </h5>
65<p>
66 This is the default model when the library is compiled under Win32, and is
67 encapsulated by the traits class <code class="computeroutput"><span class="identifier">w32_regex_traits</span></code>.
68 When this model is in effect each <a class="link" href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> object gets it's own
69 LCID, by default this is the users default setting as returned by GetUserDefaultLCID,
70 but you can call imbue on the <code class="computeroutput"><span class="identifier">basic_regex</span></code>
71 object to set it's locale to some other LCID if you wish. All the settings
72 used by Boost.Regex are acquired directly from the operating system bypassing
73 the C run time library. Front-end localization requires a resource dll, containing
74 a string table with the user-defined strings. The traits class exports the
75 function:
76 </p>
77<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">set_message_catalogue</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">);</span>
78</pre>
79<p>
80 which needs to be called with a string identifying the name of the resource
81 dll, before your code compiles any regular expressions (but not necessarily
82 before you construct any <code class="computeroutput"><span class="identifier">basic_regex</span></code>
83 instances):
84 </p>
85<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">w32_regex_traits</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;::</span><span class="identifier">set_message_catalogue</span><span class="special">(</span><span class="string">"mydll.dll"</span><span class="special">);</span>
86</pre>
87<p>
88 The library provides full Unicode support under NT, under Windows 9x the
89 library degrades gracefully - characters 0 to 255 are supported, the remainder
90 are treated as "unknown" graphic characters.
91 </p>
92<h5>
93<a name="boost_regex.background_information.locale.h1"></a>
94 <span class="phrase"><a name="boost_regex.background_information.locale.c_localization_model"></a></span><a class="link" href="locale.html#boost_regex.background_information.locale.c_localization_model">C
95 localization model.</a>
96 </h5>
97<p>
98 This model has been deprecated in favor of the C++ locale for all non-Windows
99 compilers that support it. This locale is encapsulated by the traits class
100 <code class="computeroutput"><span class="identifier">c_regex_traits</span></code>, Win32 users
101 can force this model to take effect by defining the pre-processor symbol
102 BOOST_REGEX_USE_C_LOCALE. When this model is in effect there is a single
103 global locale, as set by <code class="computeroutput"><span class="identifier">setlocale</span></code>.
104 All settings are acquired from your run time library, consequently Unicode
105 support is dependent upon your run time library implementation.
106 </p>
107<p>
108 Front end localization is not supported.
109 </p>
110<p>
111 Note that calling setlocale invalidates all compiled regular expressions,
112 calling <code class="computeroutput"><span class="identifier">setlocale</span><span class="special">(</span><span class="identifier">LC_ALL</span><span class="special">,</span> <span class="string">"C"</span><span class="special">)</span></code>
113 will make this library behave equivalent to most traditional regular expression
114 libraries including version 1 of this library.
115 </p>
116<h5>
117<a name="boost_regex.background_information.locale.h2"></a>
118 <span class="phrase"><a name="boost_regex.background_information.locale.c_localization_model0"></a></span><a class="link" href="locale.html#boost_regex.background_information.locale.c_localization_model0">C++
119 localization model.</a>
120 </h5>
121<p>
122 This model is the default for non-Windows compilers.
123 </p>
124<p>
125 When this model is in effect each instance of <a class="link" href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> has its own instance
126 of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">locale</span></code>, class <a class="link" href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a> also has a member function
127 <code class="computeroutput"><span class="identifier">imbue</span></code> which allows the locale
128 for the expression to be set on a per-instance basis. Front end localization
129 requires a POSIX message catalogue, which will be loaded via the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">messages</span></code>
130 facet of the expression's locale, the traits class exports the symbol:
131 </p>
132<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">set_message_catalogue</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;</span> <span class="identifier">s</span><span class="special">);</span>
133</pre>
134<p>
135 which needs to be called with a string identifying the name of the message
136 catalogue, before your code compiles any regular expressions (but not necessarily
137 before you construct any basic_regex instances):
138 </p>
139<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">cpp_regex_traits</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;::</span><span class="identifier">set_message_catalogue</span><span class="special">(</span><span class="string">"mycatalogue"</span><span class="special">);</span>
140</pre>
141<p>
142 Note that calling <code class="computeroutput"><span class="identifier">basic_regex</span><span class="special">&lt;&gt;::</span><span class="identifier">imbue</span></code>
143 will invalidate any expression currently compiled in that instance of <a class="link" href="../ref/basic_regex.html" title="basic_regex"><code class="computeroutput"><span class="identifier">basic_regex</span></code></a>.
144 </p>
145<p>
146 Finally note that if you build the library with a non-default localization
147 model, then the appropriate pre-processor symbol (BOOST_REGEX_USE_C_LOCALE
148 or BOOST_REGEX_USE_CPP_LOCALE) must be defined both when you build the support
149 library, and when you include <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
150 or <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cregex</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
151 in your code. The best way to ensure this is to add the #define to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">regex</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
152 </p>
153<h5>
154<a name="boost_regex.background_information.locale.h3"></a>
155 <span class="phrase"><a name="boost_regex.background_information.locale.providing_a_message_catalogue"></a></span><a class="link" href="locale.html#boost_regex.background_information.locale.providing_a_message_catalogue">Providing
156 a message catalogue</a>
157 </h5>
158<p>
159 In order to localize the front end of the library, you need to provide the
160 library with the appropriate message strings contained either in a resource
161 dll's string table (Win32 model), or a POSIX message catalogue (C++ models).
162 In the latter case the messages must appear in message set zero of the catalogue.
163 The messages and their id's are as follows:
164 </p>
165<div class="informaltable"><table class="table">
166<colgroup>
167<col>
168<col>
169<col>
170</colgroup>
171<thead><tr>
172<th>
173 <p>
174 Message
175 </p>
176 </th>
177<th>
178 <p>
179 id
180 </p>
181 </th>
182<th>
183 <p>
184 Meaning
185 </p>
186 </th>
187<th>
188 <p>
189 Default value
190 </p>
191 </th>
192</tr></thead>
193<tbody>
194<tr>
195<td>
196 <p>
197 101
198 </p>
199 </td>
200<td>
201 <p>
202 The character used to start a sub-expression.
203 </p>
204 </td>
205<td>
206 <p>
207 "("
208 </p>
209 </td>
210</tr>
211<tr>
212<td>
213 <p>
214 102
215 </p>
216 </td>
217<td>
218 <p>
219 The character used to end a sub-expression declaration.
220 </p>
221 </td>
222<td>
223 <p>
224 ")"
225 </p>
226 </td>
227</tr>
228<tr>
229<td>
230 <p>
231 103
232 </p>
233 </td>
234<td>
235 <p>
236 The character used to denote an end of line assertion.
237 </p>
238 </td>
239<td>
240 <p>
241 "$"
242 </p>
243 </td>
244</tr>
245<tr>
246<td>
247 <p>
248 104
249 </p>
250 </td>
251<td>
252 <p>
253 The character used to denote the start of line assertion.
254 </p>
255 </td>
256<td>
257 <p>
258 "^"
259 </p>
260 </td>
261</tr>
262<tr>
263<td>
264 <p>
265 105
266 </p>
267 </td>
268<td>
269 <p>
270 The character used to denote the "match any character expression".
271 </p>
272 </td>
273<td>
274 <p>
275 "."
276 </p>
277 </td>
278</tr>
279<tr>
280<td>
281 <p>
282 106
283 </p>
284 </td>
285<td>
286 <p>
287 The match zero or more times repetition operator.
288 </p>
289 </td>
290<td>
291 <p>
292 "*"
293 </p>
294 </td>
295</tr>
296<tr>
297<td>
298 <p>
299 107
300 </p>
301 </td>
302<td>
303 <p>
304 The match one or more repetition operator.
305 </p>
306 </td>
307<td>
308 <p>
309 "+"
310 </p>
311 </td>
312</tr>
313<tr>
314<td>
315 <p>
316 108
317 </p>
318 </td>
319<td>
320 <p>
321 The match zero or one repetition operator.
322 </p>
323 </td>
324<td>
325 <p>
326 "?"
327 </p>
328 </td>
329</tr>
330<tr>
331<td>
332 <p>
333 109
334 </p>
335 </td>
336<td>
337 <p>
338 The character set opening character.
339 </p>
340 </td>
341<td>
342 <p>
343 "["
344 </p>
345 </td>
346</tr>
347<tr>
348<td>
349 <p>
350 110
351 </p>
352 </td>
353<td>
354 <p>
355 The character set closing character.
356 </p>
357 </td>
358<td>
359 <p>
360 "]"
361 </p>
362 </td>
363</tr>
364<tr>
365<td>
366 <p>
367 111
368 </p>
369 </td>
370<td>
371 <p>
372 The alternation operator.
373 </p>
374 </td>
375<td>
376 <p>
377 "|"
378 </p>
379 </td>
380</tr>
381<tr>
382<td>
383 <p>
384 112
385 </p>
386 </td>
387<td>
388 <p>
389 The escape character.
390 </p>
391 </td>
392<td>
393 <p>
394 "\"
395 </p>
396 </td>
397</tr>
398<tr>
399<td>
400 <p>
401 113
402 </p>
403 </td>
404<td>
405 <p>
406 The hash character (not currently used).
407 </p>
408 </td>
409<td>
410 <p>
411 "#"
412 </p>
413 </td>
414</tr>
415<tr>
416<td>
417 <p>
418 114
419 </p>
420 </td>
421<td>
422 <p>
423 The range operator.
424 </p>
425 </td>
426<td>
427 <p>
428 "-"
429 </p>
430 </td>
431</tr>
432<tr>
433<td>
434 <p>
435 115
436 </p>
437 </td>
438<td>
439 <p>
440 The repetition operator opening character.
441 </p>
442 </td>
443<td>
444 <p>
445 "{"
446 </p>
447 </td>
448</tr>
449<tr>
450<td>
451 <p>
452 116
453 </p>
454 </td>
455<td>
456 <p>
457 The repetition operator closing character.
458 </p>
459 </td>
460<td>
461 <p>
462 "}"
463 </p>
464 </td>
465</tr>
466<tr>
467<td>
468 <p>
469 117
470 </p>
471 </td>
472<td>
473 <p>
474 The digit characters.
475 </p>
476 </td>
477<td>
478 <p>
479 "0123456789"
480 </p>
481 </td>
482</tr>
483<tr>
484<td>
485 <p>
486 118
487 </p>
488 </td>
489<td>
490 <p>
491 The character which when preceded by an escape character represents
492 the word boundary assertion.
493 </p>
494 </td>
495<td>
496 <p>
497 "b"
498 </p>
499 </td>
500</tr>
501<tr>
502<td>
503 <p>
504 119
505 </p>
506 </td>
507<td>
508 <p>
509 The character which when preceded by an escape character represents
510 the non-word boundary assertion.
511 </p>
512 </td>
513<td>
514 <p>
515 "B"
516 </p>
517 </td>
518</tr>
519<tr>
520<td>
521 <p>
522 120
523 </p>
524 </td>
525<td>
526 <p>
527 The character which when preceded by an escape character represents
528 the word-start boundary assertion.
529 </p>
530 </td>
531<td>
532 <p>
533 "&lt;"
534 </p>
535 </td>
536</tr>
537<tr>
538<td>
539 <p>
540 121
541 </p>
542 </td>
543<td>
544 <p>
545 The character which when preceded by an escape character represents
546 the word-end boundary assertion.
547 </p>
548 </td>
549<td>
550 <p>
551 "&gt;"
552 </p>
553 </td>
554</tr>
555<tr>
556<td>
557 <p>
558 122
559 </p>
560 </td>
561<td>
562 <p>
563 The character which when preceded by an escape character represents
564 any word character.
565 </p>
566 </td>
567<td>
568 <p>
569 "w"
570 </p>
571 </td>
572</tr>
573<tr>
574<td>
575 <p>
576 123
577 </p>
578 </td>
579<td>
580 <p>
581 The character which when preceded by an escape character represents
582 a non-word character.
583 </p>
584 </td>
585<td>
586 <p>
587 "W"
588 </p>
589 </td>
590</tr>
591<tr>
592<td>
593 <p>
594 124
595 </p>
596 </td>
597<td>
598 <p>
599 The character which when preceded by an escape character represents
600 a start of buffer assertion.
601 </p>
602 </td>
603<td>
604 <p>
605 "`A"
606 </p>
607 </td>
608</tr>
609<tr>
610<td>
611 <p>
612 125
613 </p>
614 </td>
615<td>
616 <p>
617 The character which when preceded by an escape character represents
618 an end of buffer assertion.
619 </p>
620 </td>
621<td>
622 <p>
623 "'z"
624 </p>
625 </td>
626</tr>
627<tr>
628<td>
629 <p>
630 126
631 </p>
632 </td>
633<td>
634 <p>
635 The newline character.
636 </p>
637 </td>
638<td>
639 <p>
640 "\n"
641 </p>
642 </td>
643</tr>
644<tr>
645<td>
646 <p>
647 127
648 </p>
649 </td>
650<td>
651 <p>
652 The comma separator.
653 </p>
654 </td>
655<td>
656 <p>
657 ","
658 </p>
659 </td>
660</tr>
661<tr>
662<td>
663 <p>
664 128
665 </p>
666 </td>
667<td>
668 <p>
669 The character which when preceded by an escape character represents
670 the bell character.
671 </p>
672 </td>
673<td>
674 <p>
675 "a"
676 </p>
677 </td>
678</tr>
679<tr>
680<td>
681 <p>
682 129
683 </p>
684 </td>
685<td>
686 <p>
687 The character which when preceded by an escape character represents
688 the form feed character.
689 </p>
690 </td>
691<td>
692 <p>
693 "f"
694 </p>
695 </td>
696</tr>
697<tr>
698<td>
699 <p>
700 130
701 </p>
702 </td>
703<td>
704 <p>
705 The character which when preceded by an escape character represents
706 the newline character.
707 </p>
708 </td>
709<td>
710 <p>
711 "n"
712 </p>
713 </td>
714</tr>
715<tr>
716<td>
717 <p>
718 131
719 </p>
720 </td>
721<td>
722 <p>
723 The character which when preceded by an escape character represents
724 the carriage return character.
725 </p>
726 </td>
727<td>
728 <p>
729 "r"
730 </p>
731 </td>
732</tr>
733<tr>
734<td>
735 <p>
736 132
737 </p>
738 </td>
739<td>
740 <p>
741 The character which when preceded by an escape character represents
742 the tab character.
743 </p>
744 </td>
745<td>
746 <p>
747 "t"
748 </p>
749 </td>
750</tr>
751<tr>
752<td>
753 <p>
754 133
755 </p>
756 </td>
757<td>
758 <p>
759 The character which when preceded by an escape character represents
760 the vertical tab character.
761 </p>
762 </td>
763<td>
764 <p>
765 "v"
766 </p>
767 </td>
768</tr>
769<tr>
770<td>
771 <p>
772 134
773 </p>
774 </td>
775<td>
776 <p>
777 The character which when preceded by an escape character represents
778 the start of a hexadecimal character constant.
779 </p>
780 </td>
781<td>
782 <p>
783 "x"
784 </p>
785 </td>
786</tr>
787<tr>
788<td>
789 <p>
790 135
791 </p>
792 </td>
793<td>
794 <p>
795 The character which when preceded by an escape character represents
796 the start of an ASCII escape character.
797 </p>
798 </td>
799<td>
800 <p>
801 "c"
802 </p>
803 </td>
804</tr>
805<tr>
806<td>
807 <p>
808 136
809 </p>
810 </td>
811<td>
812 <p>
813 The colon character.
814 </p>
815 </td>
816<td>
817 <p>
818 ":"
819 </p>
820 </td>
821</tr>
822<tr>
823<td>
824 <p>
825 137
826 </p>
827 </td>
828<td>
829 <p>
830 The equals character.
831 </p>
832 </td>
833<td>
834 <p>
835 "="
836 </p>
837 </td>
838</tr>
839<tr>
840<td>
841 <p>
842 138
843 </p>
844 </td>
845<td>
846 <p>
847 The character which when preceded by an escape character represents
848 the ASCII escape character.
849 </p>
850 </td>
851<td>
852 <p>
853 "e"
854 </p>
855 </td>
856</tr>
857<tr>
858<td>
859 <p>
860 139
861 </p>
862 </td>
863<td>
864 <p>
865 The character which when preceded by an escape character represents
866 any lower case character.
867 </p>
868 </td>
869<td>
870 <p>
871 "l"
872 </p>
873 </td>
874</tr>
875<tr>
876<td>
877 <p>
878 140
879 </p>
880 </td>
881<td>
882 <p>
883 The character which when preceded by an escape character represents
884 any non-lower case character.
885 </p>
886 </td>
887<td>
888 <p>
889 "L"
890 </p>
891 </td>
892</tr>
893<tr>
894<td>
895 <p>
896 141
897 </p>
898 </td>
899<td>
900 <p>
901 The character which when preceded by an escape character represents
902 any upper case character.
903 </p>
904 </td>
905<td>
906 <p>
907 "u"
908 </p>
909 </td>
910</tr>
911<tr>
912<td>
913 <p>
914 142
915 </p>
916 </td>
917<td>
918 <p>
919 The character which when preceded by an escape character represents
920 any non-upper case character.
921 </p>
922 </td>
923<td>
924 <p>
925 "U"
926 </p>
927 </td>
928</tr>
929<tr>
930<td>
931 <p>
932 143
933 </p>
934 </td>
935<td>
936 <p>
937 The character which when preceded by an escape character represents
938 any space character.
939 </p>
940 </td>
941<td>
942 <p>
943 "s"
944 </p>
945 </td>
946</tr>
947<tr>
948<td>
949 <p>
950 144
951 </p>
952 </td>
953<td>
954 <p>
955 The character which when preceded by an escape character represents
956 any non-space character.
957 </p>
958 </td>
959<td>
960 <p>
961 "S"
962 </p>
963 </td>
964</tr>
965<tr>
966<td>
967 <p>
968 145
969 </p>
970 </td>
971<td>
972 <p>
973 The character which when preceded by an escape character represents
974 any digit character.
975 </p>
976 </td>
977<td>
978 <p>
979 "d"
980 </p>
981 </td>
982</tr>
983<tr>
984<td>
985 <p>
986 146
987 </p>
988 </td>
989<td>
990 <p>
991 The character which when preceded by an escape character represents
992 any non-digit character.
993 </p>
994 </td>
995<td>
996 <p>
997 "D"
998 </p>
999 </td>
1000</tr>
1001<tr>
1002<td>
1003 <p>
1004 147
1005 </p>
1006 </td>
1007<td>
1008 <p>
1009 The character which when preceded by an escape character represents
1010 the end quote operator.
1011 </p>
1012 </td>
1013<td>
1014 <p>
1015 "E"
1016 </p>
1017 </td>
1018</tr>
1019<tr>
1020<td>
1021 <p>
1022 148
1023 </p>
1024 </td>
1025<td>
1026 <p>
1027 The character which when preceded by an escape character represents
1028 the start quote operator.
1029 </p>
1030 </td>
1031<td>
1032 <p>
1033 "Q"
1034 </p>
1035 </td>
1036</tr>
1037<tr>
1038<td>
1039 <p>
1040 149
1041 </p>
1042 </td>
1043<td>
1044 <p>
1045 The character which when preceded by an escape character represents
1046 a Unicode combining character sequence.
1047 </p>
1048 </td>
1049<td>
1050 <p>
1051 "X"
1052 </p>
1053 </td>
1054</tr>
1055<tr>
1056<td>
1057 <p>
1058 150
1059 </p>
1060 </td>
1061<td>
1062 <p>
1063 The character which when preceded by an escape character represents
1064 any single character.
1065 </p>
1066 </td>
1067<td>
1068 <p>
1069 "C"
1070 </p>
1071 </td>
1072</tr>
1073<tr>
1074<td>
1075 <p>
1076 151
1077 </p>
1078 </td>
1079<td>
1080 <p>
1081 The character which when preceded by an escape character represents
1082 end of buffer operator.
1083 </p>
1084 </td>
1085<td>
1086 <p>
1087 "Z"
1088 </p>
1089 </td>
1090</tr>
1091<tr>
1092<td>
1093 <p>
1094 152
1095 </p>
1096 </td>
1097<td>
1098 <p>
1099 The character which when preceded by an escape character represents
1100 the continuation assertion.
1101 </p>
1102 </td>
1103<td>
1104 <p>
1105 "G"
1106 </p>
1107 </td>
1108</tr>
1109<tr>
1110<td>
1111 <p>
1112 153
1113 </p>
1114 </td>
1115<td>
1116 <p>
1117 The character which when preceded by (? indicates a zero width
1118 negated forward lookahead assert.
1119 </p>
1120 </td>
1121<td>
1122 <p>
1123 !
1124 </p>
1125 </td>
1126</tr>
1127</tbody>
1128</table></div>
1129<p>
1130 Custom error messages are loaded as follows:
1131 </p>
1132<div class="informaltable"><table class="table">
1133<colgroup>
1134<col>
1135<col>
1136<col>
1137</colgroup>
1138<thead><tr>
1139<th>
1140 <p>
1141 Message ID
1142 </p>
1143 </th>
1144<th>
1145 <p>
1146 Error message ID
1147 </p>
1148 </th>
1149<th>
1150 <p>
1151 Default string
1152 </p>
1153 </th>
1154</tr></thead>
1155<tbody>
1156<tr>
1157<td>
1158 <p>
1159 201
1160 </p>
1161 </td>
1162<td>
1163 <p>
1164 REG_NOMATCH
1165 </p>
1166 </td>
1167<td>
1168 <p>
1169 "No match"
1170 </p>
1171 </td>
1172</tr>
1173<tr>
1174<td>
1175 <p>
1176 202
1177 </p>
1178 </td>
1179<td>
1180 <p>
1181 REG_BADPAT
1182 </p>
1183 </td>
1184<td>
1185 <p>
1186 "Invalid regular expression"
1187 </p>
1188 </td>
1189</tr>
1190<tr>
1191<td>
1192 <p>
1193 203
1194 </p>
1195 </td>
1196<td>
1197 <p>
1198 REG_ECOLLATE
1199 </p>
1200 </td>
1201<td>
1202 <p>
1203 "Invalid collation character"
1204 </p>
1205 </td>
1206</tr>
1207<tr>
1208<td>
1209 <p>
1210 204
1211 </p>
1212 </td>
1213<td>
1214 <p>
1215 REG_ECTYPE
1216 </p>
1217 </td>
1218<td>
1219 <p>
1220 "Invalid character class name"
1221 </p>
1222 </td>
1223</tr>
1224<tr>
1225<td>
1226 <p>
1227 205
1228 </p>
1229 </td>
1230<td>
1231 <p>
1232 REG_EESCAPE
1233 </p>
1234 </td>
1235<td>
1236 <p>
1237 "Trailing backslash"
1238 </p>
1239 </td>
1240</tr>
1241<tr>
1242<td>
1243 <p>
1244 206
1245 </p>
1246 </td>
1247<td>
1248 <p>
1249 REG_ESUBREG
1250 </p>
1251 </td>
1252<td>
1253 <p>
1254 "Invalid back reference"
1255 </p>
1256 </td>
1257</tr>
1258<tr>
1259<td>
1260 <p>
1261 207
1262 </p>
1263 </td>
1264<td>
1265 <p>
1266 REG_EBRACK
1267 </p>
1268 </td>
1269<td>
1270 <p>
1271 "Unmatched [ or [^"
1272 </p>
1273 </td>
1274</tr>
1275<tr>
1276<td>
1277 <p>
1278 208
1279 </p>
1280 </td>
1281<td>
1282 <p>
1283 REG_EPAREN
1284 </p>
1285 </td>
1286<td>
1287 <p>
1288 "Unmatched ( or \("
1289 </p>
1290 </td>
1291</tr>
1292<tr>
1293<td>
1294 <p>
1295 209
1296 </p>
1297 </td>
1298<td>
1299 <p>
1300 REG_EBRACE
1301 </p>
1302 </td>
1303<td>
1304 <p>
1305 "Unmatched \{"
1306 </p>
1307 </td>
1308</tr>
1309<tr>
1310<td>
1311 <p>
1312 210
1313 </p>
1314 </td>
1315<td>
1316 <p>
1317 REG_BADBR
1318 </p>
1319 </td>
1320<td>
1321 <p>
1322 "Invalid content of \{\}"
1323 </p>
1324 </td>
1325</tr>
1326<tr>
1327<td>
1328 <p>
1329 211
1330 </p>
1331 </td>
1332<td>
1333 <p>
1334 REG_ERANGE
1335 </p>
1336 </td>
1337<td>
1338 <p>
1339 "Invalid range end"
1340 </p>
1341 </td>
1342</tr>
1343<tr>
1344<td>
1345 <p>
1346 212
1347 </p>
1348 </td>
1349<td>
1350 <p>
1351 REG_ESPACE
1352 </p>
1353 </td>
1354<td>
1355 <p>
1356 "Memory exhausted"
1357 </p>
1358 </td>
1359</tr>
1360<tr>
1361<td>
1362 <p>
1363 213
1364 </p>
1365 </td>
1366<td>
1367 <p>
1368 REG_BADRPT
1369 </p>
1370 </td>
1371<td>
1372 <p>
1373 "Invalid preceding regular expression"
1374 </p>
1375 </td>
1376</tr>
1377<tr>
1378<td>
1379 <p>
1380 214
1381 </p>
1382 </td>
1383<td>
1384 <p>
1385 REG_EEND
1386 </p>
1387 </td>
1388<td>
1389 <p>
1390 "Premature end of regular expression"
1391 </p>
1392 </td>
1393</tr>
1394<tr>
1395<td>
1396 <p>
1397 215
1398 </p>
1399 </td>
1400<td>
1401 <p>
1402 REG_ESIZE
1403 </p>
1404 </td>
1405<td>
1406 <p>
1407 "Regular expression too big"
1408 </p>
1409 </td>
1410</tr>
1411<tr>
1412<td>
1413 <p>
1414 216
1415 </p>
1416 </td>
1417<td>
1418 <p>
1419 REG_ERPAREN
1420 </p>
1421 </td>
1422<td>
1423 <p>
1424 "Unmatched ) or \)"
1425 </p>
1426 </td>
1427</tr>
1428<tr>
1429<td>
1430 <p>
1431 217
1432 </p>
1433 </td>
1434<td>
1435 <p>
1436 REG_EMPTY
1437 </p>
1438 </td>
1439<td>
1440 <p>
1441 "Empty expression"
1442 </p>
1443 </td>
1444</tr>
1445<tr>
1446<td>
1447 <p>
1448 218
1449 </p>
1450 </td>
1451<td>
1452 <p>
1453 REG_E_UNKNOWN
1454 </p>
1455 </td>
1456<td>
1457 <p>
1458 "Unknown error"
1459 </p>
1460 </td>
1461</tr>
1462</tbody>
1463</table></div>
1464<p>
1465 Custom character class names are loaded as followed:
1466 </p>
1467<div class="informaltable"><table class="table">
1468<colgroup>
1469<col>
1470<col>
1471<col>
1472</colgroup>
1473<thead><tr>
1474<th>
1475 <p>
1476 Message ID
1477 </p>
1478 </th>
1479<th>
1480 <p>
1481 Description
1482 </p>
1483 </th>
1484<th>
1485 <p>
1486 Equivalent default class name
1487 </p>
1488 </th>
1489</tr></thead>
1490<tbody>
1491<tr>
1492<td>
1493 <p>
1494 300
1495 </p>
1496 </td>
1497<td>
1498 <p>
1499 The character class name for alphanumeric characters.
1500 </p>
1501 </td>
1502<td>
1503 <p>
1504 "alnum"
1505 </p>
1506 </td>
1507</tr>
1508<tr>
1509<td>
1510 <p>
1511 301
1512 </p>
1513 </td>
1514<td>
1515 <p>
1516 The character class name for alphabetic characters.
1517 </p>
1518 </td>
1519<td>
1520 <p>
1521 "alpha"
1522 </p>
1523 </td>
1524</tr>
1525<tr>
1526<td>
1527 <p>
1528 302
1529 </p>
1530 </td>
1531<td>
1532 <p>
1533 The character class name for control characters.
1534 </p>
1535 </td>
1536<td>
1537 <p>
1538 "cntrl"
1539 </p>
1540 </td>
1541</tr>
1542<tr>
1543<td>
1544 <p>
1545 303
1546 </p>
1547 </td>
1548<td>
1549 <p>
1550 The character class name for digit characters.
1551 </p>
1552 </td>
1553<td>
1554 <p>
1555 "digit"
1556 </p>
1557 </td>
1558</tr>
1559<tr>
1560<td>
1561 <p>
1562 304
1563 </p>
1564 </td>
1565<td>
1566 <p>
1567 The character class name for graphics characters.
1568 </p>
1569 </td>
1570<td>
1571 <p>
1572 "graph"
1573 </p>
1574 </td>
1575</tr>
1576<tr>
1577<td>
1578 <p>
1579 305
1580 </p>
1581 </td>
1582<td>
1583 <p>
1584 The character class name for lower case characters.
1585 </p>
1586 </td>
1587<td>
1588 <p>
1589 "lower"
1590 </p>
1591 </td>
1592</tr>
1593<tr>
1594<td>
1595 <p>
1596 306
1597 </p>
1598 </td>
1599<td>
1600 <p>
1601 The character class name for printable characters.
1602 </p>
1603 </td>
1604<td>
1605 <p>
1606 "print"
1607 </p>
1608 </td>
1609</tr>
1610<tr>
1611<td>
1612 <p>
1613 307
1614 </p>
1615 </td>
1616<td>
1617 <p>
1618 The character class name for punctuation characters.
1619 </p>
1620 </td>
1621<td>
1622 <p>
1623 "punct"
1624 </p>
1625 </td>
1626</tr>
1627<tr>
1628<td>
1629 <p>
1630 308
1631 </p>
1632 </td>
1633<td>
1634 <p>
1635 The character class name for space characters.
1636 </p>
1637 </td>
1638<td>
1639 <p>
1640 "space"
1641 </p>
1642 </td>
1643</tr>
1644<tr>
1645<td>
1646 <p>
1647 309
1648 </p>
1649 </td>
1650<td>
1651 <p>
1652 The character class name for upper case characters.
1653 </p>
1654 </td>
1655<td>
1656 <p>
1657 "upper"
1658 </p>
1659 </td>
1660</tr>
1661<tr>
1662<td>
1663 <p>
1664 310
1665 </p>
1666 </td>
1667<td>
1668 <p>
1669 The character class name for hexadecimal characters.
1670 </p>
1671 </td>
1672<td>
1673 <p>
1674 "xdigit"
1675 </p>
1676 </td>
1677</tr>
1678<tr>
1679<td>
1680 <p>
1681 311
1682 </p>
1683 </td>
1684<td>
1685 <p>
1686 The character class name for blank characters.
1687 </p>
1688 </td>
1689<td>
1690 <p>
1691 "blank"
1692 </p>
1693 </td>
1694</tr>
1695<tr>
1696<td>
1697 <p>
1698 312
1699 </p>
1700 </td>
1701<td>
1702 <p>
1703 The character class name for word characters.
1704 </p>
1705 </td>
1706<td>
1707 <p>
1708 "word"
1709 </p>
1710 </td>
1711</tr>
1712<tr>
1713<td>
1714 <p>
1715 313
1716 </p>
1717 </td>
1718<td>
1719 <p>
1720 The character class name for Unicode characters.
1721 </p>
1722 </td>
1723<td>
1724 <p>
1725 "unicode"
1726 </p>
1727 </td>
1728</tr>
1729</tbody>
1730</table></div>
1731<p>
1732 Finally, custom collating element names are loaded starting from message
1733 id 400, and terminating when the first load thereafter fails. Each message
1734 looks something like: "tagname string" where tagname is the name
1735 used inside [[.tagname.]] and string is the actual text of the collating
1736 element. Note that the value of collating element [[.zero.]] is used for
1737 the conversion of strings to numbers - if you replace this with another value
1738 then that will be used for string parsing - for example use the Unicode character
1739 0x0660 for [[.zero.]] if you want to use Unicode Arabic-Indic digits in your
1740 regular expressions in place of Latin digits.
1741 </p>
1742<p>
1743 Note that the POSIX defined names for character classes and collating elements
1744 are always available - even if custom names are defined, in contrast, custom
1745 error messages, and custom syntax messages replace the default ones.
1746 </p>
1747</div>
1748<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1749<td align="left"></td>
1750<td align="right"><div class="copyright-footer">Copyright &#169; 1998-2013 John Maddock<p>
1751 Distributed under the Boost Software License, Version 1.0. (See accompanying
1752 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
1753 </p>
1754</div></td>
1755</tr></table>
1756<hr>
1757<div class="spirit-nav">
1758<a accesskey="p" href="headers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../background_information.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="thread_safety.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
1759</div>
1760</body>
1761</html>