// This is the SIP interface definition for TQRegExp.
//
// Copyright (c) 2007
// 	Riverbank Computing Limited <info@riverbankcomputing.co.uk>
// 
// This file is part of PyTQt.
// 
// This copy of PyTQt is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2, or (at your option) any later
// version.
// 
// PyTQt is supplied in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
// FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
// details.
// 
// You should have received a copy of the GNU General Public License along with
// PyTQt; see the file LICENSE.  If not, write to the Free Software Foundation,
// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


%ExportedDoc
<Sect2><Title>TQRegExp</Title>
<Para>
The Python <Literal>==</Literal> and <Literal>!=</Literal> operators are
supported.
</Para>

<FuncSynopsis>
        <FuncDef>int <Function>match</Function></FuncDef>
        <ParamDef>const char *<Parameter>str</Parameter></ParamDef>
        <ParamDef>int <Parameter>index</Parameter> = 0</ParamDef>
        <ParamDef>int *<Parameter>len</Parameter> = 0</ParamDef>
</FuncSynopsis>
<Para>
This takes <Literal>str</Literal> and <Literal>index</Literal> parameters and
returns a tuple of the <Literal>int</Literal> result and the
<Literal>len</Literal> value. (TQt v1.x)
</Para>

<FuncSynopsis>
        <FuncDef>int <Function>match</Function></FuncDef>
        <ParamDef>const TQString &<Parameter>str</Parameter></ParamDef>
        <ParamDef>int <Parameter>index</Parameter> = 0</ParamDef>
        <ParamDef>int *<Parameter>len</Parameter> = 0</ParamDef>
</FuncSynopsis>
<Para>
This takes <Literal>str</Literal> and <Literal>index</Literal> parameters and
returns a tuple of the <Literal>int</Literal> result and the
<Literal>len</Literal> value. (TQt v2+)
</Para>
</Sect2>
%End


class TQRegExp
{
%TypeHeaderCode
#include <tqregexp.h>
%End

public:
%If (TQt_3_1_0 -)
	enum CaretMode {
		CaretAtZero,
		CaretAtOffset,
		CaretWontMatch
	};
%End

	TQRegExp();
%If (- TQt_2_00)
	TQRegExp(const char *,bool = 1,bool = 0);
%End
%If (TQt_2_00 -)
	TQRegExp(const TQString &,bool = 1,bool = 0);
%End
	TQRegExp(const TQRegExp &);

	bool operator==(const TQRegExp &) const;
	bool operator!=(const TQRegExp &) const;

	bool isEmpty() const;
	bool isValid() const;
%If (- TQt_2_00)
	const char *pattern() const;
%End
%If (TQt_2_00 -)
	TQString pattern() const;
%End
%If (TQt_2_2_0 -)
	void setPattern(const TQString &);
%End
	bool caseSensitive() const;
	void setCaseSensitive(bool);
	bool wildcard() const;
	void setWildcard(bool);
%If (TQt_3_0_0 -)
	bool minimal() const;
	void setMinimal(bool);

	bool exactMatch(const TQString &) const;
%End

%If (- TQt_2_00)
	int match(const char *,int = 0,int * = 0) const;
%End
%If (TQt_2_00 - TQt_3_0_0)
	int match(const TQString &,int = 0,int * = 0) const;
%End

%If (TQt_2_2_0 - TQt_3_0_0)
	int find(const TQString &,int);
%End

%If (TQt_3_0_0 -)
	int search(const TQString &,int = 0) const;
%If (TQt_3_1_0 -)
	int search(const TQString &,int,CaretMode) const;
%End
	int searchRev(const TQString &,int = -1) const;
%If (TQt_3_1_0 -)
	int searchRev(const TQString &,int,CaretMode) const;
%End
	int matchedLength() const;
%If (TQt_3_1_0 -)
	int numCaptures() const;
%End
	TQStringList capturedTexts();
	TQString cap(int = 0);
	int pos(int = 0);
%End
%If (TQt_3_1_0 -)
	TQString errorString();

	static TQString escape(const TQString &);
%End
};
