Warning, /utilities/kregexpeditor/doc/index.docbook is written in an unsupported language. File is not indexed.

0001 <?xml version="1.0" ?>
0002 <!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.5-Based Variant V1.1//EN" "dtd/kdedbx45.dtd" [
0003  <!ENTITY % English "INCLUDE">
0004  <!ENTITY % addindex "IGNORE">
0005 ]>
0006 
0007 <book id="kregexpeditor" lang="&language;">
0008 
0009   <bookinfo>
0010     <title>The Regular Expression Editor Manual</title>
0011 
0012     <authorgroup>
0013       <author>
0014         <firstname>Jesper K.</firstname>
0015         <surname>Pedersen</surname>
0016         <affiliation><address>&Jesper.Pedersen.mail;</address></affiliation>
0017       </author>
0018 <!-- TRANS:ROLES_OF_TRANSLATORS -->
0019     </authorgroup>
0020 
0021     <date>2001-07-03</date>
0022     <releaseinfo>0.1</releaseinfo>
0023 
0024     <legalnotice>&underFDL;</legalnotice>
0025 
0026     <copyright>
0027       <year>2001</year>
0028       <holder>Jesper K. Pedersen</holder>
0029     </copyright>
0030 
0031     <abstract>
0032       <para>This Handbook describes the Regular Expression Editor widget</para>
0033     </abstract>
0034 
0035     <keywordset>
0036       <keyword>KDE</keyword>
0037       <keyword>regular expression</keyword>
0038     </keywordset>
0039   </bookinfo>
0040 
0041   <!-- ====================================================================== -->
0042   <!--                               Introduction                             -->
0043   <!-- ====================================================================== -->
0044   <chapter id="introduction">
0045     <title>Introduction</title>
0046 
0047 
0048     <para>
0049       The regular expression editor is an editor for editing regular expression
0050       in a graphical style (in contrast to the <acronym>ASCII</acronym> syntax). Traditionally
0051       regular expressions have been typed in the <acronym>ASCII</acronym> syntax, which for example
0052       looks like <literal>^.*kde\b</literal>. The major drawbacks of
0053       this style are:
0054       <itemizedlist>
0055         <listitem><para>It is hard to understand for
0056             non-programmers.</para></listitem>
0057 
0058         <listitem><para>It requires that you <emphasis>escape</emphasis>
0059             certain symbols (to match a star for example, you need to type
0060             <literal>\*</literal>). </para></listitem>
0061 
0062         <listitem><para>It requires that you remember rules for
0063             <emphasis>precedence</emphasis> (What does <literal>x|y*</literal>
0064             match? a single <literal>x</literal> or a number of
0065             <literal>y</literal>, <emphasis>OR</emphasis> a number of
0066             <literal>x</literal> and <literal>y</literal>'s mixed?)</para></listitem>
0067       </itemizedlist>
0068     </para>
0069 
0070     <para>
0071       The regular expression editor, on the other hand, lets you
0072       <emphasis>draw</emphasis> your regular expression in an unambiguous
0073       way. The editor solves at least item two and three above. It might not make
0074       regular expressions available for the non-programmers, though only tests by
0075       users can tell that. So, if are you a non programmer, who has gained the
0076       power of regular expression from this editor, then please 
0077       <ulink url="mailto:blackie@kde.org">let me know</ulink>.
0078     </para>
0079 
0080   </chapter>
0081 
0082   <!-- ====================================================================== -->
0083   <!--                       What is a Regular Expression                     -->
0084   <!-- ====================================================================== -->
0085   <chapter id="whatIsARegExp">
0086     <title>What is a Regular Expression</title>
0087 
0088     <para>A regular expression is a way to specify
0089       <emphasis>conditions</emphasis> to be fulfilled for a situation
0090       in mind. Normally when you search in a text editor you specify
0091       the text to search for <emphasis>literally</emphasis>, using a
0092       regular expression, on the other hand, you tell what a given
0093       match would look like. Examples of this include <emphasis>I'm
0094       searching for the word &kde;, but only at the beginning of the
0095       line</emphasis>, or <emphasis>I'm searching for the word
0096       <literal>the</literal>, but it must stand on its own</emphasis>,
0097       or <emphasis>I'm searching for files starting with the word
0098       <literal>test</literal>, followed by a number of digits, for
0099       example <literal>test12</literal>, <literal>test107</literal>
0100       and <literal>test007</literal></emphasis></para>
0101 
0102     <para>You build regular expressions from smaller regular
0103       expressions, just like you build large Lego toys from smaller
0104       subparts. As in the Lego world, there are a number of basic
0105       building blocks. In the following I will describe each of these
0106       basic building blocks using a number of examples.</para>
0107 
0108     <example>
0109       <title>Searching for normal text.</title>
0110       <para>If you just want to search for a given text, then regular
0111         expression is definitely not a good choice. The reason for this is that
0112         regular expressions assign special meaning to some characters. This
0113         includes the following characters: <literal>.*|$</literal>. Thus if you want to
0114         search for the text <literal>kde.</literal> (i.e. the characters
0115         <literal>kde</literal> followed by a period), then you would need to
0116         specify this as <literal>kde\.</literal><footnote><para>The regular
0117             expression editor solves this problem by taking care of escape rules for
0118             you.</para></footnote> Writing <literal>\.</literal> rather than just
0119         <literal>.</literal> is called <emphasis>escaping</emphasis>.
0120       </para>
0121     </example>
0122 
0123     <example id="positionregexp">
0124       <title>Matching &URL;s</title>
0125       <para>When you select something looking like a &URL; in &kde;, then the
0126         program <command>klipper</command> will offer to start
0127         <command>konqueror</command> with the selected &URL;.</para>
0128 
0129       <para><command>Klipper</command> does this by matching the selection
0130         against several different regular expressions, when one of the regular
0131         expressions matches, the accommodating command will be offered.</para>
0132       
0133       <para>The regular expression for &URL;s says (among other things), that the
0134         selection must start with the text <literal>http://</literal>. This is
0135         described using regular expressions by prefixing the text
0136         <literal>http://</literal> with a hat (the <literal>^</literal>
0137         character).</para>
0138 
0139       <para>The above is an example of matching positions using regular
0140         expressions. Similar, the position <emphasis>end-of-line</emphasis> can
0141         be matched using the character <literal>$</literal> (i.e. a dollar
0142         sign).</para>
0143     </example>
0144 
0145     <example id="boundaryregexp">
0146       <title>Searching for the word <literal>the</literal>, but not
0147         <emphasis>the</emphasis><literal>re</literal>,
0148         <literal>brea</literal><emphasis>the</emphasis> or
0149         <literal>ano</literal><emphasis>the</emphasis><literal>r</literal></title>
0150       <para>Two extra position types can be matches in the above way,
0151         namely <emphasis>the position at a word boundary</emphasis>, and
0152         <emphasis>the position at a <emphasis>non</emphasis>-word
0153           boundary</emphasis>. The positions are specified using the text
0154         <literal>\b</literal> (for word-boundary) and <literal>\B</literal> (for
0155         non-word boundary)</para>
0156 
0157       <para>Thus, searching for the word <literal>the</literal> can be done
0158         using the regular expression <literal>\bthe\b</literal>. This specifies
0159         that we are searching for <literal>the</literal> with no letters on each
0160         side of it (i.e. with a word boundary on each side)</para>
0161 
0162       <para>The four position matching regular expressions are inserted in the
0163         regular expression editor using <link linkend="positiontool">four
0164           different positions tool</link></para>
0165     </example>
0166 
0167     <example id="altnregexp">
0168       <title>Searching for either <literal>this</literal> or <literal>that</literal></title>
0169       <para>Imagine that you want to run through your document searching for
0170         either the word <literal>this</literal> or the word
0171         <literal>that</literal>. With a normal search method you could do this in
0172         two sweeps, the first time around, you would search for
0173         <literal>this</literal>, and the second time around you would search for
0174         <literal>that</literal>.</para>
0175 
0176       <para>Using regular expression searches you would search for both in the
0177         same sweep. You do this by searching for
0178         <literal>this|that</literal>, &ie; separating the two words with a
0179         vertical bar.<footnote><para>Note on each side of the vertical bar is a
0180             regular expression, so this feature is not only for searching for two
0181             different pieces of text, but for searching for two different regular
0182             expressions.</para></footnote></para>
0183 
0184       <para>In the regular expression editor you do not write the vertical bar
0185         yourself, but instead select the <link linkend="altntool">alternative
0186           tool</link>, and insert the smaller regular expressions above each other.</para>
0187     </example>
0188 
0189     <example id="repeatregexp">
0190       <title>Matching anything</title>
0191       <para>Regular expressions are often compared to wildcard matching in the
0192         shell - that is the capability to specify a number of files using the
0193         asterisk. You will most likely recognize wildcard matching from the
0194         following examples: 
0195         <itemizedlist>
0196           <listitem><para><literal>ls *.txt</literal> - here <literal>*.txt</literal> is
0197               the shell wildcard matching every file ending with the
0198               <literal>.txt</literal> extension.</para></listitem>
0199           <listitem><para><literal>cat test??.res</literal> - matching every file starting with
0200               <literal>test</literal> followed by two arbitrary characters, and finally
0201               followed by the test <literal>.res</literal></para></listitem>
0202         </itemizedlist>
0203       </para>
0204 
0205       <para>In the shell the asterisk matches any character any number of
0206         times. In other words, the asterisk matches <emphasis>anything</emphasis>.
0207         This is written like <literal>.*</literal> with regular expression
0208         syntax. The dot matches any single character, &ie; just
0209         <emphasis>one</emphasis> character, and the asterisk, says that the
0210         regular expression prior to it should be matched any number of
0211         times. Together this says any single character any number of
0212         times.</para>
0213 
0214       <para>This may seem overly complicated, but when you get the larger
0215         picture you will see the power. Let me show you another basic regular
0216         expression: <literal>a</literal>. The letter <literal>a</literal> on its
0217         own is a regular expression that matches a single letter, namely the
0218         letter <literal>a</literal>. If we combine this with the asterisk,
0219         &ie; <literal>a*</literal>, then we have a regular expression matching
0220         any number of a's.</para>
0221 
0222       <para>We can combine several regular expression after each
0223         other, for example <literal>ba(na)*</literal>. 
0224         <footnote><para><literal>(na)*</literal> just says that what is inside
0225             the parenthesis is repeated any number of times.</para></footnote>
0226         Imagine you had typed this regular expression into the search field in a
0227         text editor, then you would have found the following words (among
0228         others): <literal>ba</literal>, <literal>bana</literal>,
0229         <literal>banana</literal>, <literal>bananananananana</literal>
0230       </para>
0231 
0232       <para>Given the information above, it hopefully isn't hard for you to write the
0233         shell wildcard <literal>test??.res</literal> as a regular expression.
0234         Answer: <literal>test..\.res</literal>. The dot on its own is any
0235         character. To match a single dot you must write
0236         <literal>\.</literal><footnote><para>This is called escaping</para></footnote>. In
0237         other word, the regular expression <literal>\.</literal> matches a dot,
0238         while a dot on its own matches any character. </para>
0239 
0240       <para>In the regular expression editor, a repeated regular expression is
0241         created using the <link linkend="repeattool">repeat tool</link> </para>
0242     </example>
0243 
0244     <example id="lookaheadregexp">
0245       <title>Replacing <literal>&amp;</literal> with
0246         <literal>&amp;amp;</literal> in a &HTML; document</title> <para>In
0247         &HTML; the special character <literal>&amp;</literal> must be
0248         written as <literal>&amp;amp;</literal> - this is similar to
0249         escaping in regular expressions.</para>
0250 
0251       <para>Imagine that you have written an &HTML; document in a normal editor
0252         (e.g. &XEmacs; or &kate;), and you totally forgot about this rule. What you
0253         would do when realized your mistake was to replace every occurrences of
0254         <literal>&amp;</literal> with <literal>&amp;amp;</literal>.</para>
0255 
0256       <para>This can easily be done using normal search and replace,
0257         there is, however, one glitch. Imagine that you did remember
0258         this rule - <emphasis>just a bit</emphasis> - and did it right
0259         in some places. Replacing unconditionally would result in
0260         <literal>&amp;amp;</literal> being replaced with
0261         <literal>&amp;amp;amp;</literal></para>
0262 
0263       <para>What you really want to say is that <literal>&amp;</literal> should
0264         only be replaced if it is <emphasis>not</emphasis> followed by the letters
0265         <literal>amp;</literal>. You can do this using regular expressions using
0266         <emphasis>positive lookahead</emphasis>. </para>
0267 
0268       <para>The regular expression, which only matches an ampersand if it is
0269         not followed by the letters <literal>amp;</literal> looks as follows:
0270         <literal>&amp;(?!amp;)</literal>. This is, of course, easier to read using
0271         the regular expression editor, where you would use the 
0272         <link linkend="lookaheadtools">lookahead tools</link>.</para>
0273     </example>
0274 
0275   </chapter>
0276 
0277   <!-- ====================================================================== -->
0278   <!--                    Using the Regular Expression Editor                 -->
0279   <!-- ====================================================================== -->
0280   <chapter id="theEditor">
0281     <title>Using the Regular Expression Editor</title>
0282 
0283     <para>
0284       This chapter will tell you about how the regular expression editor works.
0285     </para>
0286 
0287     <!-- ====================================================================== -->
0288     <!--                   The organization of the screen                       -->
0289     <!-- ====================================================================== -->
0290     <sect1 id="screenorganization">
0291       <title>The organization of the screen</title>
0292 
0293       <mediaobject>
0294         <imageobject><imagedata format="PNG" fileref="theEditor.png"/></imageobject>
0295       </mediaobject>
0296       
0297       <para>The most important part of the editor is of course the editing
0298         area, this is the area where you draw your regular expression. This
0299         area is the larger gray one in the middle.</para>
0300 
0301       <para>Above the editing area you have two Toolbars, the first one
0302         contains the <link linkend="editingtools">editing actions</link> -
0303         much like drawing tools in a drawing program. The second Toolbar
0304         contains the <emphasis>What's This?</emphasis> button, and buttons
0305         for undo and redo.</para>
0306 
0307       <para>Below the editing area you find the regular expression
0308         currently build, in the so called ascii syntax. The ascii syntax
0309         is updated while you edit the regular expression in the graphical
0310         editor. If you rather want to update the ascii syntax then please
0311         do, the graphical editor is updated on the fly to reflect your
0312         changes.</para>
0313 
0314       <para>Finally to the left of the editor area you will find a number
0315         of pre-built regular expressions. They serve two purposes: (1) When
0316         you load the editor with a regular expression then this regular
0317         expression is made <emphasis>nicer</emphasis> or more comprehensive
0318         by replacing common regular expressions. In the screen dump above,
0319         you can see how the ascii syntax ".*" have been replaced with a box
0320         saying "anything". (2) When you insert regular expression you may
0321         find building blocks for your own regular expression from the set of
0322         pre build regular expressions. See the section on
0323         <link linkend="userdefinedregexps">user defined regular
0324           expressions</link> to learn how to save your own regular expressions.</para>      
0325     </sect1>
0326 
0327     <!-- ====================================================================== -->
0328     <!--                         Editing Tools                                  -->
0329     <!-- ====================================================================== -->
0330     <sect1 id="editingtools">
0331       <title>Editing Tools</title>
0332       <para>The text in this section expects that you have read the chapter
0333         on <link linkend="whatIsARegExp">what a regular expression
0334           is</link>, or have previous knowledge on this subject.</para>
0335       
0336       <para>All the editing tools are located in the toolbar above
0337         editing area. Each of them will be described in the following.</para>
0338       
0339       
0340 
0341       <simplesect id="selecttool">
0342         <title>Selection Tool</title>
0343         <mediaobject>
0344             <imageobject><imagedata format="PNG" fileref="select.png"/>
0345         </imageobject></mediaobject>
0346         <para> The selection tool is used to
0347           mark elements for cut-and-paste and drag-and-drop. This is very
0348           similar to a selection tool in any drawing program.</para>
0349       </simplesect>
0350         
0351       
0352 
0353       <simplesect id="texttool"><title>Text Tool</title>
0354       <mediaobject>
0355       <imageobject>
0356             <imagedata format="PNG" fileref="text.png"/>
0357         </imageobject></mediaobject>
0358                         
0359         <para><inlinemediaobject><imageobject>
0360               <imagedata format="PNG" fileref="texttool.png"/>
0361         </imageobject></inlinemediaobject></para>
0362 
0363         <para>Using this tool you will insert normal text to match. The
0364         text is matched literally, &ie; you do not have to worry about
0365         escaping of special characters.  In the example above the following
0366           regular expression will be build: <literal>abc\*\\\)</literal></para>
0367       </simplesect>
0368 
0369       
0370 
0371       <simplesect id="characterstool"><title>Character Tool</title>
0372       <mediaobject><imageobject>
0373             <imagedata format="PNG" fileref="characters.png"/>
0374             </imageobject></mediaobject>
0375         <para><inlinemediaobject><imageobject>
0376             <imagedata format="PNG" fileref="charactertool.png"/>
0377             </imageobject></inlinemediaobject></para>
0378         
0379         <para> Using this tool you insert
0380           character ranges. Examples includes what in ASCII text says
0381           <literal>[0-9]</literal>, <literal>[^a-zA-Z,_]</literal>. When
0382           inserting an item with this tool a  dialog will appear, in which
0383           you specify the character ranges.</para>
0384         
0385         <para>See description of <link linkend="repeatregexp">repeated
0386             regular expressions</link>.</para>
0387       </simplesect>
0388 
0389       
0390       
0391       <simplesect id="anychartool"><title>Any Character Tool</title>
0392         <mediaobject><imageobject>
0393               <imagedata format="PNG" fileref="anychar.png"/>
0394         </imageobject></mediaobject>
0395         <para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="anychartool.png"/>
0396         </imageobject></inlinemediaobject></para>
0397 
0398         <para>This is the regular expression "dot" (.). It matches any
0399           single character.</para> 
0400         
0401        
0402         
0403         </simplesect>
0404 
0405 
0406 
0407       <simplesect id="repeattool"><title>Repeat Tool</title>
0408       <mediaobject><imageobject>
0409             <imagedata format="PNG" fileref="repeat.png"/>
0410             </imageobject></mediaobject>
0411         <para><inlinemediaobject><imageobject>
0412             <imagedata format="PNG" fileref="repeattool.png"/>
0413             </imageobject></inlinemediaobject></para>
0414 
0415         <para>This is the repeated
0416             elements. This includes what in ASCII syntax is represented
0417             using an asterix (*), a plus (+), a question mark (?), and
0418             ranges ({3,5}). When you insert an item using this tool, a
0419             dialog will appear asking for the number of times to
0420             repeat.</para>
0421           
0422           <para>You specify what to repeat by drawing the repeated content
0423             inside the box which this tool inserts.</para>
0424 
0425           <para>Repeated elements can both be built from the outside in and 
0426         the inside
0427             out. That is you can first draw what to be repeated, select it
0428             and use the repeat tool to repeat it. Alternatively you can
0429             first insert the repeat element, and draw what is to be repeated
0430             inside it.</para>
0431 
0432         <para>See description on the <link linkend="repeatregexp">repeated
0433             regular expressions</link>.</para>
0434         </simplesect>
0435 
0436 
0437 
0438 
0439       <simplesect id="altntool"><title>Alternative Tool</title>
0440       <mediaobject><imageobject>
0441             <imagedata format="PNG" fileref="altn.png"/>
0442             </imageobject></mediaobject>
0443         <para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="altntool.png"/>
0444         </imageobject></inlinemediaobject></para>
0445         
0446         <para>This is the alternative regular expression (|). You specify
0447           the alternatives by drawing each alternative on top of each other
0448           inside the box that this tool inserts.</para>
0449 
0450         <para>See description on <link linkend="altnregexp">alternative
0451             regular expressions</link></para>
0452       </simplesect>
0453       
0454 
0455 
0456 
0457       <simplesect id="compoundtool"><title>Compound Tool</title>
0458         <mediaobject><imageobject>
0459               <imagedata format="PNG" fileref="compound.png"/>
0460         </imageobject></mediaobject>
0461         <para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="compoundtool.png"/>
0462         </imageobject></inlinemediaobject></para>
0463         
0464         <para>The compound tool does not represent any regular
0465           expressions. It is used to group other sub parts together in a
0466           box, which easily can be collapsed to only its title. This can be
0467           seen in the right part of the screen dump above.</para>
0468       </simplesect>
0469 
0470 
0471 
0472 
0473 
0474       <simplesect id="positiontool"><title>Line Start/End Tools</title>
0475         <mediaobject><imageobject>
0476             <imagedata format="PNG" fileref="begline.png"/>
0477         </imageobject></mediaobject>
0478           <mediaobject><imageobject>
0479               <imagedata format="PNG" fileref="endline.png"/>
0480         </imageobject></mediaobject>
0481         <para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="linestartendtool.png"/>
0482         </imageobject></inlinemediaobject></para>
0483 
0484         <para>The line start and line end tools matches the start of the
0485           line, and the end of the line respectively. The regular
0486           expression in the screen dump above thus matches lines only
0487           matches spaces.</para>
0488         
0489         <para>See description of <link linkend="positionregexp">position
0490             regular expressions</link>.</para>
0491       </simplesect>
0492 
0493 
0494 
0495 
0496 
0497       <simplesect><title>Word (Non)Boundary Tools</title>
0498       <mediaobject><imageobject>
0499             <imagedata format="PNG" fileref="wordboundary.png"/>
0500             </imageobject></mediaobject>
0501           <mediaobject><imageobject><imagedata format="PNG" fileref="nonwordboundary.png"/>
0502         </imageobject></mediaobject>
0503         <para><inlinemediaobject><imageobject><imagedata format="PNG" fileref="boundarytools.png"/>
0504         </imageobject></inlinemediaobject></para>
0505 
0506         <para>The boundary tools matches a word boundary respectively a
0507           non-word boundary. The regular expression in the screen dump thus
0508           matches any words starting with <literal>the</literal>. The word
0509           <literal>the</literal> itself is, however, not matched.</para>
0510 
0511         <para>See description of <link linkend="boundaryregexp">boundary
0512             regular expressions</link>.</para>
0513       </simplesect>
0514 
0515 
0516 
0517 
0518 
0519       <simplesect id="lookaheadtools"><title>Positive/Negative Lookahead
0520           Tools</title>
0521           <mediaobject><imageobject> <imagedata format="PNG" fileref="poslookahead.png"/>
0522         </imageobject></mediaobject>
0523           <mediaobject><imageobject> <imagedata format="PNG" fileref="neglookahead.png"/>
0524         </imageobject></mediaobject>
0525 
0526         <para><inlinemediaobject><imageobject> <imagedata format="PNG" fileref="lookaheadtools.png"/>
0527         </imageobject></inlinemediaobject></para>
0528 
0529         <para>The look ahead tools either specify a positive or negative
0530           regular expression to match. The match is, however, not part of
0531           the total match.</para>
0532 
0533         <para>Note: You are only allowed to place lookaheads at the end
0534           of the regular expressions. The Regular Expression Editor widget
0535           does not enforce this.</para>
0536 
0537         <para>See description of <link linkend="lookaheadregexp">look ahead
0538           regular expressions</link>.</para>
0539       </simplesect>
0540     </sect1>
0541 
0542   <!-- ====================================================================== -->
0543   <!--                  User Defined Regular Expressions                      -->
0544   <!-- ====================================================================== -->
0545     <sect1 id="userdefinedregexps">
0546       <title>User Defined Regular Expressions</title>
0547       <para>Located at the left of the editing area is a list box
0548         containing user defined regular expressions. Some regular
0549         expressions are pre-installed with your &kde; installation, while
0550         others you can save yourself.</para> 
0551 
0552       <para>These regular expression serves two purposes
0553         (<link linkend="screenorganization">see detailed
0554           description</link>), namely (1) to offer you a set of building
0555         block and (2) to make common regular expressions prettier.</para>
0556 
0557       <para>You can save your own regular expressions by right clicking the
0558         mouse button in the editing area, and choosing <literal>Save Regular
0559           Expression</literal>.</para>
0560 
0561       <para>If the regular expression you save is within a  
0562         <link linkend="compoundtool">compound container</link> then the
0563         regular expression will take part in making subsequent regular
0564         expressions prettier.</para>
0565 
0566       <para>User defined regular expressions can be deleted or renamed by
0567         pressing the right mouse button on top of the regular expression in
0568         question in the list box.</para>
0569     </sect1>
0570   </chapter>
0571 
0572   <!-- ====================================================================== -->
0573   <!--                  Reporting a bug and Suggesting Features               -->
0574   <!-- ====================================================================== -->
0575   <chapter id="bugreport">
0576     <title>Reporting bugs and Suggesting Features</title>
0577     <para>Bug reports and feature requests should be submitted through the
0578       <ulink url="http://bugs.kde.org/">&kde; Bug Tracking System</ulink>.
0579       <emphasis role="strong">Before</emphasis> you report a bug or suggest a feature,
0580       please check that it hasn't already been 
0581       <ulink url="http://bugs.kde.org/buglist.cgi?quicksearch=kregexpeditor">reported/suggested.</ulink></para>
0582   </chapter>
0583 
0584   <!-- ====================================================================== -->
0585   <!--                                 FAQ                                    -->
0586   <!-- ====================================================================== -->
0587   <chapter id="faq">
0588     <title>Frequently Asked Questions</title>
0589     <sect1 id="question1">
0590       <title>Does the regular expression editor support back references?</title>
0591       <para>No currently this is not supported. It is planned for the next
0592         version.</para>
0593     </sect1>
0594 
0595     <sect1 id="question2">
0596       <title>Does the regular expression editor support showing matches?</title>
0597       <para>No, hopefully this will be available in the next version.</para>
0598     </sect1>
0599 
0600     <sect1 id="question3">
0601       <title>I'm the author of a &kde; program, how can I use this widget in
0602         my application?</title>
0603       <para>See <ulink
0604                        url="http://developer.kde.org/documentation/library/cvs-api/classref/interfaces/KRegExpEditorInterface.html">The documentation for the class KRegExpEditorInterface</ulink>.</para>
0605     </sect1>
0606 
0607     <sect1 id="question4">
0608       <title>I cannot find the <emphasis>Edit Regular expression</emphasis> button in for example
0609         konqueror on another KDE3 installation, why?</title>
0610       <para>The regular expression widget is located in the package
0611         &kde;-utils. If you do not have this package installed, then the
0612         <emphasis>edit regular expressions</emphasis> buttons will not
0613         appear in the programs.</para>
0614     </sect1>
0615   </chapter>
0616 
0617   <!-- ====================================================================== -->
0618   <!--                           Credits and Licenses                         -->
0619   <!-- ====================================================================== -->
0620   <chapter id="credits-and-license">
0621     <title>Credits and License</title>
0622 
0623     <para>
0624       Documentation is copyright 2001, Jesper K. Pedersen &Jesper.Pedersen.mail;
0625     </para>
0626 
0627 
0628 <!-- TRANS:CREDIT_FOR_TRANSLATORS -->
0629     &underFDL;
0630     &underGPL;
0631 
0632   </chapter>
0633 
0634 
0635 </book>
0636 
0637 <!-- Keep this comment at the end of the file
0638 Local variables:
0639 mode: sgml
0640 sgml-omittag:t
0641 sgml-shorttag:t
0642 sgml-namecase-general:t
0643 sgml-general-insert-case:lower
0644 sgml-minimize-attributes:nil
0645 sgml-always-quote-attributes:t
0646 sgml-indent-step:2
0647 sgml-indent-data:t
0648 sgml-parent-document:nil
0649 sgml-exposed-tags:nil
0650 sgml-local-catalogs:nil
0651 sgml-local-ecat-files:nil
0652 End:
0653 -->