package Lingua::RU::Antimat;
use strict;
use 5.004;
use FileHandle;

$Lingua::RU::Antimat::VERSION = '1.00';

use locale;

sub new
{
	my $that = shift;
	my $class = ref($that)||$that;
	my $self= {};
	
	my $codepage=shift;
	if (defined($codepage)&&($codepage eq 'koi8'))
	{ 
		$self->{'word'}='a[\W_]*s[\W_]*s(?:[\W_]*e[\W_]*s)?|f[\W_]*u[\W_]*c[\W_]*k(?:[\W_]*i[\W_]*n[\W_]*g)?|Ö[\W_]*(?:[ÙÉiu][\W_]*[Äd](?:[\W_]*[ÕÙÁyiau]|[\W_]*[Ïo0][\W_]*[×bv])?|[Ïo0][\W_]*[Ðnp][\W_]*(?:[Áa](?:[\W_]*[Èxh])?|[ÕÅÙeyiu]|[Ïo0][\W_]*[Êj]))|[Äd][\W_]*[Åe][\W_]*[Òpr][\W_]*(?:[Øb][\W_]*)?[Ím][\W_]*[ÏÕÅÁeoya0u](?:[\W_]*[Ím])?|[Þc][\W_]*[Ím][\W_]*(?:[Ïo0]|[Ùi][\W_]*[Òpr][\W_]*[ÅÉØÑeibu])|[Ósc][\W_]*[Õuy][\W_]*(?:(?:[Þc][\W_]*)?[Ëk][\W_]*[ÁÕÉiyau](?:[\W_]*[Îhn](?:[\W_]*[Ïo0][\W_]*[Êj]|[\W_]*[ÕÁÙyiau])?)?|[Þc][\W_]*(?:(?:[Øb][\W_]*)?(?:[Å£ÑÉeiu]|[ÅÉeiu][\W_]*[Êj])|[Áa][\W_]*[Òpr][\W_]*[ÙÁÕÅeyiau]))|[Çrg][\W_]*(?:[ÁÏoa0][\W_]*(?:[Îhn][\W_]*[Äd][\W_]*[ÁÏoa0][\W_]*[Îhn](?:[\W_]*[ÙÕyiu])?|[×bv][\W_]*[Îhn][\W_]*[ÏÁoa0](?:[\W_]*(?:[Ím]|[Åe][\W_]*[Äd](?:[\W_]*[ÙÕÁÅeyiau]|[\W_]*[ÏÁoa0][\W_]*[Ím](?:[\W_]*[Éiu])?)?))?)|[Îhn][\W_]*(?:[Éiu][\W_]*[Äd][\W_]*(?:[ÙÕÅÁeyiau]|[Ïo0][\W_]*[Êj])|[Õyu][Ósc](?:[\W_]*[ÁÙÕyiau]|[\W_]*[ÏÁoa0][\W_]*[Ím](?:[\W_]*[Éiu])?)?))|(?:[Îhn][\W_]*[Åe][\W_]*)?(?:(?:[Ú3z][\W_]*[Áa]|[Ïo0][Ôt]|[Ðnp][\W_]*[Ïo0]|[Ðnp][\W_]*(?:[Åe][\W_]*[Òpr][\W_]*[Åe]|[Òpr][\W_]*[ÏÅÉeiou0]|[Éiu][\W_]*[Ú3z][\W_]*[Äd][\W_]*[Ïo0])|[Îhn][\W_]*[Áa]|[Éiu][\W_]*[Ú3z]|[Äd][\W_]*[Ïo0]|[×bv][\W_]*[Ùi]|[Õyu]|[Òpr][\W_]*[Áa][\W_]*[Ú3z]|[Ú3z][\W_]*[Ìl][\W_]*[Ïo0]|[Ôt][\W_]*[Òpr][\W_]*[Ïo0]|[Õyu])[\W_]*)?(?:[×bv][\W_]*[Ùi][\W_]*)?(?:[ßØb][\W_]*)?(?:[Å£e][\W_]*[Âb6](?:(?:[\W_]*[ÏÅ£ÁÉÕeioyau0])?(?:[\W_]*[Îhn](?:[\W_]*[Îhn])?[\W_]*[ÑÕÁÉØiybau]?)?(?:[\W_]*[×bv][\W_]*[Áa])?(?:(?:[\W_]*(?:[ÉÅeiu]Û[\W_]*[Øb][\W_]*[Ósc][\W_]*Ñ|[Ôt][\W_]*(?:(?:[Øb][\W_]*)?[Ósc][\W_]*Ñ|[Øb]|[Åe][\W_]*[Ósc][\W_]*[Øb]|[Åe]|[Ïo0]|[Éiu][\W_]*[Îhn][\W_]*[ÕÙÅÁeyiau])|(?:Ý[\W_]*(?:[Éiu][\W_]*[Êj]|[Áa][\W_]*Ñ|[ÉÅeiu][\W_]*[Åe]|[Åe][\W_]*[Çrg][\W_]*[Ïo0])|À[\W_]*[Ôt])(?:[\W_]*[Ósc][\W_]*Ñ)?|[Åe][\W_]*[ÍÔmt]|[Ëk](?:[\W_]*[ÉÁiau])?|[Áa][\W_]*[Ìl](?:[\W_]*[Ósc][\W_]*Ñ)?|[Ìl][\W_]*(?:[Áa][\W_]*[Îhn]|[ÏÁoa0](?:[\W_]*[Ím])?|(?:[Éiu][\W_]*)?[Ósc][\W_]*[ØÑb]|[Éiu]|[Áa][\W_]*[Ósc][\W_]*[Øb])|[Òpr][\W_]*[Øb]|[Ósc][\W_]*[ÑØb]|[Îhn][\W_]*[Ïo0]|[Þc][\W_]*(?:[Éiu][\W_]*[Èxh]|[Åe][\W_]*[Ósc][\W_]*[Ôt][\W_]*[ØÉibu](?:[\W_]*À)?)|(?:[Ôt][\W_]*[Åe][\W_]*[Ìl][\W_]*[Øb][\W_]*[Ósc][\W_]*[Ëk][\W_]*|[Ósc][\W_]*[Ôt][\W_]*|[Ìl][\W_]*[Éiu][\W_]*[×bv][\W_]*|[ÞÔtc][\W_]*)?(?:[Áa][\W_]*Ñ|[Ïo0][\W_]*[ÊÅÍejm]|[Ùi][\W_]*[ÈÊÅejxh]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Éiu][\W_]*[Åe]|[Ïo0][\W_]*[Ím][\W_]*[Õyu]|[Éiu][\W_]*[Êj]|[Åe][\W_]*[×bv]|[Éiu][\W_]*[Ím](?:[\W_]*[Éiu])?)|[ÞÔÙÊÉÌijltcu]))?)|[\W_]*[Ùi](?:(?:[\W_]*[×bv][\W_]*[Áa]|[\W_]*[Îhn](?:[\W_]*[Îhn])?)(?:(?:[\W_]*(?:[ÉÅeiu]Û[\W_]*[Øb][\W_]*[Ósc][\W_]*Ñ|[Ôt][\W_]*(?:[Øb][\W_]*[Ósc][\W_]*Ñ|[Øb]|[Åe][\W_]*[Ósc][\W_]*[Øb]|[Åe]|[Éiu][\W_]*[Îhn][\W_]*[ÕÙÅÁeyiau])|(?:Ý[\W_]*(?:[Éiu][\W_]*[Êj]|[Áa][\W_]*Ñ|[ÉÅeiu][\W_]*[Åe]|[Åe][\W_]*[Çrg][\W_]*[Ïo0])|À[\W_]*[Ôt])(?:[\W_]*[Ósc][\W_]*Ñ)?|[Åe][\W_]*[ÍÔmt]|[Ìl][\W_]*(?:(?:[Éiu][\W_]*)?[Ósc][\W_]*[ØÑb]|[Éiu]|[Áa][\W_]*[Ósc][\W_]*[Øb])|(?:[Ósc][\W_]*[Ôt][\W_]*|[Ìl][\W_]*[Éiu][\W_]*[×bv][\W_]*|[ÞÔtc][\W_]*)?(?:[Áa][\W_]*Ñ|[Ïo0][\W_]*[ÊÅÍejm]|[Ùi][\W_]*[ÈÊÅejxh]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Éiu][\W_]*[Åe]|[Ïo0][\W_]*[Ím][\W_]*[Õyu]|[Éiu][\W_]*[Êj]|[Åe][\W_]*[×bv]|[Éiu][\W_]*[Ím](?:[\W_]*[Éiu])?))))|[Òpr][\W_]*[Øb]))|Ñ[\W_]*[Âb6](?:[\W_]*[ÏÅ£ÁÉÕeioyau0])?(?:(?:[\W_]*[Îhn](?:[\W_]*[Îhn])?[\W_]*[ÑÕÁÉØiybau]?)?(?:(?:[\W_]*(?:[ÉÅeiu]Û[\W_]*[Øb][\W_]*[Ósc][\W_]*Ñ|[Ôt][\W_]*(?:[Øb][\W_]*[Ósc][\W_]*Ñ|[Øb]|[Åe][\W_]*[Ósc][\W_]*[Øb]|[Åe]|[Éiu][\W_]*[Îhn][\W_]*[ÕÙÅÁeyiau])|(?:Ý[\W_]*(?:[Éiu][\W_]*[Êj]|[Áa][\W_]*Ñ|[ÉÅeiu][\W_]*[Åe]|[Åe][\W_]*[Çrg][\W_]*[Ïo0])|À[\W_]*[Ôt])(?:[\W_]*[Ósc][\W_]*Ñ)?|[Åe][\W_]*[ÍÔmt]|[Ëk](?:[\W_]*[ÉÁiau])?|[Áa][\W_]*[Ìl](?:[\W_]*[Ósc][\W_]*Ñ)?|[Ìl][\W_]*(?:[Áa][\W_]*[Îhn]|[ÏÁoa0](?:[\W_]*[Ím])?|(?:[Éiu][\W_]*)?[Ósc][\W_]*[ØÑb]|[Éiu])|[Òpr][\W_]*[Øb]|[Ósc][\W_]*[ÑØb]|[Îhn][\W_]*[Ïo0]|[Þc][\W_]*(?:[Éiu][\W_]*[Èxh]|[Åe][\W_]*[Ósc][\W_]*[Ôt][\W_]*[ØÉibu](?:[\W_]*À)?)|(?:[Ôt][\W_]*[Åe][\W_]*[Ìl][\W_]*[Øb][\W_]*[Ósc][\W_]*[Ëk][\W_]*|[Ósc][\W_]*[Ôt][\W_]*|[Ìl][\W_]*[Éiu][\W_]*[×bv][\W_]*|[ÞÔtc][\W_]*)?(?:[Áa][\W_]*Ñ|[Ïo0][\W_]*[ÊÅÍejm]|[Ùi][\W_]*[ÈÊÅejxh]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Éiu][\W_]*[Åe]|[Ïo0][\W_]*[Ím][\W_]*[Õyu]|[Éiu][\W_]*[Êj]|[Åe][\W_]*[×bv]|[Éiu][\W_]*[Ím](?:[\W_]*[Éiu])?)|[ÞÍÊÉÌijlmcu]))|(?:[\W_]*[Îhn](?:[\W_]*[Îhn])?[\W_]*[ÑÕÁÉØiybau]?)))|Ñ[\W_]*[Âb6][\W_]*(?:[Å£ÁÉÕeiyau][\W_]*)?(?:[Îhn][\W_]*(?:[Îhn][\W_]*)?(?:[ÑÕÁÉØiybau][\W_]*)?)?[Ôt])|[Ósc][\W_]*[Øßb][\W_]*[ÅÑ£e][\W_]*[Âb6][\W_]*(?:[Õyu]|(?:[ÅÉ£ÁÕeiyau](?:[\W_]*[Ìl](?:[\W_]*[ÉÏÁioau0])?|[\W_]*Û[\W_]*[Øb]|[\W_]*[Ôt][\W_]*[Åe])?(?:[\W_]*[Ósc][\W_]*[ØÑb])?))|[Åe][\W_]*(?:[Âb6][\W_]*(?:[Õyu][\W_]*[Ëk][\W_]*[Åe][\W_]*[Îhn][\W_]*[Ôt][\W_]*[Éiu][\W_]*[Êj]|[Åe][\W_]*[Îhn][\W_]*(?:[Øb]|Ñ(?:[\W_]*[Ím])?)|[Éiu][\W_]*(?:[Ãc][\W_]*[Ëk][\W_]*[Áa][\W_]*Ñ|[Þc][\W_]*[Åe][\W_]*[Ósc][\W_]*[Ëk][\W_]*[Áa][\W_]*Ñ)|[Ìl][\W_]*[Éiu][\W_]*Ý[\W_]*[Åe]|[Áa][\W_]*(?:[Ìl][\W_]*[Øb][\W_]*[Îhn][\W_]*[Éiu][\W_]*[Ëk](?:[\W_]*[ÉÁiau])?|[Ôt][\W_]*[Ïo0][\W_]*[Òpr][\W_]*[Éiu][\W_]*[Êj]|[Îhn][\W_]*(?:[Ôt][\W_]*[Òpr][\W_]*[Ïo0][\W_]*[Ðnp]|[Áa][\W_]*[Ôt][\W_]*[Éiu][\W_]*(?:[Ëk]|[Þc][\W_]*[Åe][\W_]*[Ósc][\W_]*[Ëk][\W_]*[Éiu][\W_]*[Êj]))))|[Äd][\W_]*[Òpr][\W_]*[Éiu][\W_]*[Ôt])|[Îhn][\W_]*[Åe][\W_]*[×bv][\W_]*[Òpr][\W_]*[Ïo0][\W_]*[Ôt][\W_]*ß[\W_]*[Åe][\W_]*[Âb6][\W_]*[Áa][\W_]*[Ôt][\W_]*[Åe][\W_]*[Ìl][\W_]*[Øb][\W_]*[Ósc][\W_]*[Ëk][\W_]*[Éiu][\W_]*(?:[ÙÉiu][\W_]*[Êj]|[Áa][\W_]*Ñ|[Ïo0][\W_]*[ÅÊej]|[Ùi][\W_]*[Èxh]|[Ùi][\W_]*[Åe]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Ïo0][\W_]*[Ím][\W_]*[Õyu])|[Õyu][\W_]*(?:[£Åe][\W_]*[Âb6][\W_]*(?:[Éiu][\W_]*Ý[\W_]*[ÅÁea]|[Áa][\W_]*[Îhn](?:[\W_]*[Ôt][\W_]*[Õyu][\W_]*[Ósc])?(?:[\W_]*[ÁÏoa0][\W_]*[×Íbmv]|[\W_]*[ÙÕÅÁeyiau])?)|[Òpr][\W_]*[Ïo0][\W_]*[Äd](?:[\W_]*[ÁÏoa0][\W_]*[×Íbmv]|[\W_]*[ÙÕÅÁeyiau])?|[Âb6][\W_]*[Ìl][\W_]*À[\W_]*[Äd][\W_]*(?:[Ïo0][\W_]*[Ëk]|[Ëk][\W_]*(?:[ÁÏoa0][\W_]*[×Íbmv](?:[\W_]*[Éiu])?|[ÉÕÅÁeiyau])?))|[Ím][\W_]*(?:[Õyu][\W_]*[Äd][\W_]*(?:[Ïo0][\W_]*[Èxh][\W_]*[Áa][\W_]*(?:[Ôt][\W_]*[Øb][\W_]*[Ósc][\W_]*Ñ|À[\W_]*[Ósc][\W_]*[Øb]|[Åe][\W_]*Û[\W_]*[Øb][\W_]*[Ósc][\W_]*Ñ)|[Áa][\W_]*(?:[Ëk](?:[\W_]*[ÉÁiau]|[Ïo0][Í×bmv])?|[Þc][\W_]*(?:[Øb][\W_]*[Å£e]|[Éiu][\W_]*[Îhn][\W_]*[ÕÙÁyiau]|[Ëk][\W_]*(?:[ÁÉÅÕeiyau]|[Ïo0][\W_]*[Êj])))|[Åe][\W_]*[Îhn][\W_]*[Øb]|[Éiu][\W_]*[Ìl](?:[\W_]*[ÁÅÏÙeoia0]?))|[Áa][\W_]*[Îhn][\W_]*[Äd][\W_]*[ÕÁyau]|[Ìl][\W_]*(?:[Éiu][\W_]*[Îhn]|Ñ))|(?:[Ím][\W_]*(?:[Ïo0][\W_]*[Ú3z][\W_]*[Çrg]|[Õyu][\W_]*[Äd])|[Äd][\W_]*(?:[Ïo0][\W_]*[Ìl][\W_]*[Âb6]|[Õyu][\W_]*[Òpr])|[Ósc][\W_]*[Ëk][\W_]*[Ïo0][\W_]*[Ôt]|Ö[\W_]*[Éiu][\W_]*[Äd])[\W_]*[ÁÏoa0][\W_]*(?:[Èxh][\W_]*[Õyu][\W_]*[ÉÊÑiju]|[£Åe][\W_]*[Âb6](?:[\W_]*[ÅÏeo0][\W_]*[×bv]|[\W_]*[ÙÁia]|[\W_]*[Ósc][\W_]*[Ôt][\W_]*[×bv][\W_]*[ÏÕoy0u](?:[\W_]*[Ím])?|[Éiu][\W_]*[Ú3z][\W_]*[Ím])?)|(?:[Îhn][\W_]*[Åe][\W_]*|[Ú3z][\W_]*[Áa][\W_]*|[Ïo0][\W_]*[Ôt][\W_]*|[Ðnp][\W_]*[Ïo0][\W_]*|[Îhn][\W_]*[Áa][\W_]*|[Òpr][\W_]*[Áa][\W_]*[ÓÚ3szc][\W_]*)?(?:[Ðnp][\W_]*[Éiu][\W_]*[Ú3z][\W_]*[Äd][\W_]*[ÉÑÅeiu]|(?:ß)?[Å£e][\W_]*[Âb6][\W_]*[Áa])[\W_]*(?:(?:[Ôt][\W_]*[Øb][\W_]*[Ósc][\W_]*Ñ|[Ôt][\W_]*[Øb]|[Ìl][\W_]*[Éiu]|[Áa][\W_]*[Ìl]|[Ìl]|c[\W_]*[Øb]|[Éiu][\W_]*[Ôt]|[Éiu]|[Ôt][\W_]*[Åe]|[Þc][\W_]*[Õyu]|Û[\W_]*[Øb])|(?:[ÊÑÉiju]|[ÉÅeiu][\W_]*[Ím](?:[\W_]*[Éiu])?|[Êj][\W_]*[Ósc][\W_]*(?:[Ëk][\W_]*(?:[ÙÉiu][\W_]*[ÊÅej]|[Áa][\W_]*Ñ|[Ïo0][\W_]*[Åe]|[Ùi][\W_]*[Èxh]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Ïo0][\W_]*[Ím][\W_]*[Õyu])|[Ôt][\W_]*[×bv][\W_]*[ÏÕÁoya0u](?:[\W_]*[Ím])?)))|[Ðnp][\W_]*[ÅÉÙeiu][\W_]*[Äd][\W_]*[ÁÅÜÏeoa0][\W_]*[Òpr](?:(?:[\W_]*[Áa][\W_]*[ÓÚ3szc](?:(?:[\W_]*[Ôt])?(?:[\W_]*[Ùi]|[\W_]*[ÏÁoa0][\W_]*[Ím](?:[\W_]*[Éiu])?|[\W_]*[Ëk][\W_]*[ÁÉiau])?|(?:[\W_]*[ÙÕÁÅeyiau]|[\W_]*[ÏÁoa0][\W_]*[Ím](?:[\W_]*[Éiu])?|[\W_]*[Ïo0][\W_]*[×bv])))|[\W_]*(?:[ÙÕÁÅeyiau]|[ÏÁoa0][\W_]*[Ím](?:[\W_]*[Éiu])?|[Ïo0][\W_]*[×bv]|[Îhn][\W_]*Ñ))?|[Ðnp][\W_]*[Éiu][\W_]*[Ú3z][\W_]*(?:[Øb][\W_]*)?[Äd][\W_]*(?:[£Åe][\W_]*(?:[Îhn][\W_]*[Ùi][\W_]*Û(?:[\W_]*[Øb])?|[ÛÎÖhn](?:[\W_]*[Øb])?)|[Õyu][\W_]*(?:[Êj](?:[\W_]*[Ôt][\W_]*[Åe])?|[Îhn](?:[\W_]*[Ùi])?)|À[\W_]*(?:[Ëk](?:[\W_]*(?:[ÁÅÕÉeiyau]|[Ïo0][\W_]*[×bv]|[Áa][\W_]*[Ím](?:[\W_]*[Éiu])?))?|[Ìl](?:[ØÉibu]|[Åe][\W_]*[Êj]|Ñ[\W_]*[ÈÍmxh]))|[Åe][\W_]*[Ãc]|[ÁÏoa0][\W_]*(?:[Îhn][\W_]*[Õyu][\W_]*)?[Ôt][\W_]*(?:[Éiu][\W_]*[Êj]|[Áa][\W_]*Ñ|[Ïo0](?:[\W_]*[ÅÊej])?|[Ùi][\W_]*[ÅÊÈejxh]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Ïo0][\W_]*[Ím][\W_]*[Õyu]|[Åe][\W_]*[Åe]|[ÁÕØÅÙeyibau])|[Áa][\W_]*[Îhn][\W_]*[Õyu][\W_]*[Ìl](?:[\W_]*[ÁÉiau])?|[ÙÅÕÉÁeiyau]|[ÏÁoa0][\W_]*(?:[Êj]|[Èxh][\W_]*[Õyu][\W_]*[Êj]|[Å£e][\W_]*[Âb6]|(?:[Òpr][\W_]*[Ïo0][\W_]*[Ôt]|[Çrg][\W_]*[Ïo0][\W_]*[Ìl][\W_]*[Ïo0][\W_]*[×bv])[\W_]*(?:[ÙÉiu][\W_]*[Êj]|[Áa][\W_]*Ñ|[Ïo0][\W_]*[ÅÊej]|[Ùi][\W_]*[Èxh]|[Ùi][\W_]*[Åe]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Ïo0][\W_]*[Ím][\W_]*[Õyu])|[Âb6][\W_]*(?:[Òpr][\W_]*[Áa][\W_]*[Ôt][\W_]*[Éiu][\W_]*Ñ|[Ïo0][\W_]*[Ìl](?:[\W_]*[ÁÙÕyiau])?)))|[Ðnp][\W_]*(?:[Áa][\W_]*[Äd][\W_]*[Ìl][\W_]*[ÁÏÙoia0]|[ÏÁoa0][\W_]*[Ósc][\W_]*[Ëk][\W_]*[Õyu][\W_]*[Äd][\W_]*(?:[ÙÕÁÅeyiau]|[ÏÁoa0][\W_]*[Ím](?:[\W_]*[Éiu])?)|[ÉÅeiu][\W_]*[Äd][\W_]*(?:[Éiu][\W_]*[Ëk]|[Òpr][\W_]*[Éiu][\W_]*[Ìl](?:[\W_]*[Ìl])?)(?:[\W_]*[ÏÁoa0][\W_]*[Í×bmv]|[\W_]*[ÉÕÅÏÙÁeioyau0])?|[Òpr][\W_]*[Ïo0][\W_]*[Âb6][\W_]*[Ìl][\W_]*Ñ[\W_]*[Äd][\W_]*[Ïo0][\W_]*[Ím])|(?:[Ú3z][\W_]*[Áa][\W_]*|[Ïo0][\W_]*[Ôt][\W_]*|[Îhn][\W_]*[Áa][\W_]*)?[Ósc][\W_]*[Òpr][\W_]*(?:[Áa][\W_]*[Ôt][\W_]*[Øb]|[Áa][\W_]*[Ìl](?:[\W_]*[Éiu])?|[eÕÉiyu])|[Ósc][\W_]*[Òpr][\W_]*[Áa][\W_]*(?:[Ëk][\W_]*(?:[ÁÅÉÕeiyau]|[Ïo0][\W_]*[Êj])|[Îhn](?:[\W_]*[Îhn])?(?:[Øb]|(?:[\W_]*[Ùi][\W_]*[ÊÅej]|[\W_]*[Áa][\W_]*Ñ|[\W_]*[Ïo0][\W_]*[Åe]))|[Ìl][\W_]*[Øb][\W_]*[Îhn][\W_]*[Éiu][\W_]*[Ëk](?:[\W_]*[Éiu]|[\W_]*[ÏÁoa0][\W_]*[Ím])?)|(?:[Ú3z][\W_]*[Áa][\W_]*)?[Ôt][\W_]*[Òpr][\W_]*[Áa][\W_]*[Èxh][\W_]*(?:[Îhn][\W_]*(?:[Õyu](?:[\W_]*[Ôt][\W_]*[Øb](?:[\W_]*[Ósc][\W_]*Ñ)?|[\W_]*[Ósc][\W_]*[Øb]|[\W_]*[Ìl](?:[\W_]*[ÁÉiau])?)?|[ÅÉeiu][\W_]*Û[\W_]*[Øb][\W_]*[Ósc][\W_]*Ñ)|[Áa][\W_]*(?:[Ìl](?:[\W_]*[ÁÏÉioau0])?|[Ôt][\W_]*[Øb](?:[\W_]*[Ósc][\W_]*Ñ)?|[Îhn][\W_]*(?:[Îhn][\W_]*)?(?:[ÙÉiu][\W_]*[Êj]|[Áa][\W_]*Ñ|[Ïo0][\W_]*[ÊÅej]|[Ùi][\W_]*[Èxh]|[Ùi][\W_]*[Åe]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Ïo0][\W_]*[Ím][\W_]*[Õyu])))|(?:[Îhn][\W_]*[ÉÅeiu][\W_]*|[Ðnp][\W_]*[Ïo0][\W_]*|[Îhn][\W_]*[Áa][\W_]*|[ÏÁoa0][\W_]*(?:[Ôt][\W_]*)?|[Äd][\W_]*[ÁÏoa0][\W_]*|[Ú3z][\W_]*[Áa][\W_]*)?(?:(?:[Æf][\W_]*[Éiu][\W_]*[Çrg]|[Èxh][\W_]*(?:[ÅÉeiu][\W_]*(?:[Êj][\W_]*)?[Òpr]|[Òpr][\W_]*[Åe][\W_]*[Îhn]|[Õyu](?:[\W_]*[Êj])?))(?:[\W_]*[ÅÏ£eo0][\W_]*[×bv](?:[\W_]*[Áa][\W_]*À[\W_]*Ý|[\W_]*Û)?)?(?:[\W_]*[ÁÉÅeiau][\W_]*[ÌÎlhn])?(?:[Îhn])?(?:[\W_]*(?:[ÉÁÏ£ÑÙÅeioau0][ÀÑÉÅ×ÍÊbeijmvu]|Ñ[\W_]*(?:[Ím](?:[\W_]*[Éiu])?|[Òpr][\W_]*(?:À|[Éiu][\W_]*(?:[Ôt](?:[\W_]*[ØÅeb][\W_]*[Ósc][\W_]*[ÑØb])?|[Ìl](?:[\W_]*[ÉÏÁioau0])?))|[Þc][\W_]*(?:[ÁÉiau][\W_]*[Ôt](?:[\W_]*[Ósc][\W_]*Ñ)|[Éiu][\W_]*[Ìl](?:[\W_]*[ÉÏÁioau0])?)|[Þc](?:[\W_]*[Øb])?)|[Åe][\W_]*(?:[Ôt][\W_]*(?:[Ïo0][\W_]*[Êj]|[ÁØÕybau])|[Åe][\W_]*(?:[Ôt][\W_]*[Åe]|Û[\W_]*[Øb]))|[ÁÙÏÕÑÀÊÉijoyau0]|[Ìl][\W_]*[ÉÏiou0]|[Þc][\W_]*[Õyu])))|(?:[Æf][\W_]*[Éiu][\W_]*[Çrg]|[Èxh][\W_]*(?:[ÅÉeiu][\W_]*(?:[Êj][\W_]*)?[Òpr]|[Òpr][\W_]*[Åe][\W_]*[Îhn]|[Õyu][\W_]*[Êj]))|[Èxh][\W_]*[Õyu][\W_]*(?:[Å£Éeiu][\W_]*(?:[Ósc][\W_]*[Ïo0][\W_]*[Ósc]|[Ðnp][\W_]*[Ìl][\W_]*[Åe][\W_]*[Ôt]|[Îhn][\W_]*[Ùi][\W_]*Û)(?:[\W_]*[ÁÙÕyiau]|[\W_]*[ÏÁoa0][\W_]*[Ím](?:[\W_]*[Éiu])?|[Îhn][\W_]*(?:[ÙÉiu][\W_]*[Êj]|[Áa][\W_]*Ñ|[Ïo0][\W_]*[ÊÅej]|[Ùi][\W_]*[Èxh]|[Ùi][\W_]*[Åe]|[Ùi][\W_]*[Ím](?:[\W_]*[Éiu])?|[Õyu][\W_]*À|[Ïo0][\W_]*[Ím][\W_]*[Õyu]))?|[Äd][\W_]*[Ïo0][\W_]*£[\W_]*[Âb6][\W_]*[Éiu][\W_]*[Îhn][\W_]*(?:[Ïo0][\W_]*[Êj]|[ÁÅÙÕeyiau]))|[Âb6][\W_]*[Ìl][\W_]*Ñ(?:[\W_]*[ÄÔdt][\W_]*(?:[Øb]|[Éiu]|[Ëk][\W_]*[Éiu]|[Ósc][\W_]*[Ôt][\W_]*[×bv][\W_]*[Ïo0]|[Ósc][\W_]*[Ëk][\W_]*(?:[Ïo0][\W_]*[ÅÊej]|[Éiu][\W_]*[Åe]|[Áa][\W_]*Ñ|[Éiu][\W_]*[Êj]|[Ïo0][\W_]*[Çrg][\W_]*[Ïo0])))?|[×bv][\W_]*[Ùi][\W_]*[Âb6][\W_]*[Ìl][\W_]*Ñ[\W_]*[Äd][\W_]*(?:[Ïo0][\W_]*[Ëk]|[Ëk][\W_]*(?:[ÉÕÁÅeiyau]|[Áa][\W_]*[Ím](?:[\W_]*[Éiu])?))|(?:[Ú3z][\W_]*[ÁÏoa0][\W_]*)(?:[Ðnp][\W_]*[ÁÏoa0][\W_]*[Äd][\W_]*[Ìl][\W_]*[ÏÙÁoia0]|[Ìl][\W_]*[Õyu][\W_]*[Ðnp][\W_]*(?:[Ïo0][\W_]*[Êj]|[ÁÅÙÕeyiau]))|Û[\W_]*[Ìl][\W_]*À[\W_]*[Èxh][\W_]*(?:[ÁÕÅÉeiyau]|[Ïo0][\W_]*[Êj])|[Áa][\W_]*[Îhn][\W_]*[Õyu][\W_]*[Ósc](?:[\W_]*[ÅÁÙÕeyiau]|[\W_]*[Ïo0][\W_]*[Ím])?|(?:\w*(?:[Èxh](?:[Òpr][Åe][Îhn]|[Õyu][Éiu])|[Ðnp][ÅÉeiu](?:[Ú3z][Äd]|[Äd](?:[ÅÁÏeoa0][Òpr]|[Òpr]))|[Âb6][Ìl]Ñ[Äd]|[Ïo0][Èxh][Õyu][Åe]|[Ím][Õyu][Äd][ÅÏÉÁeioau0]|[Äd][Åe][Òpr][Øb]|[Çrg][ÁÏoa0][×bv][Îhn]|[Õyu][Å£e][Âb6])|[Èxh][\W_]*(?:[Òpr][\W_]*[Åe][\W_]*[Îhn]|[Õyu][\W_]*[ÊÉÅÑeiju])|[Ðnp][\W_]*[ÅÉeiu][\W_]*(?:[Ú3z][\W_]*[Äd]|[Äd][\W_]*(?:[ÅÁÏeoa0][\W_]*[Òpr]|[Òpr]))|[Âb6][\W_]*[Ìl][\W_]*Ñ[\W_]*[Äd]|[Ïo0][\W_]*[Èxh][\W_]*[Õyu][\W_]*[Åe]|[Ím][\W_]*[Õyu][\W_]*[Äd][\W_]*[ÅÏÉÁeioau0]|[Äd][\W_]*[Åe][\W_]*[Òpr][\W_]*[Øb]|[Çrg][\W_]*[ÁÏoa0][\W_]*[×bv][\W_]*[Îhn]|[Õyu][\W_]*[Å£e][\W_]*[Âb6]|[£Åe][Âb6])\w+';
		$self->{'bip'}='ÂÉÐ';
	}	
	
	
	else 
	{
		$self->{'word'}='a[\W_]*s[\W_]*s(?:[\W_]*e[\W_]*s)?|f[\W_]*u[\W_]*c[\W_]*k(?:[\W_]*i[\W_]*n[\W_]*g)?|æ[\W_]*(?:[ûèiu][\W_]*[äd](?:[\W_]*[óûàyiau]|[\W_]*[îo0][\W_]*[âbv])?|[îo0][\W_]*[ïnp][\W_]*(?:[àa](?:[\W_]*[õxh])?|[óåûeyiu]|[îo0][\W_]*[éj]))|[äd][\W_]*[åe][\W_]*[ðpr][\W_]*(?:[üb][\W_]*)?[ìm][\W_]*[îóåàeoya0u](?:[\W_]*[ìm])?|[÷c][\W_]*[ìm][\W_]*(?:[îo0]|[ûi][\W_]*[ðpr][\W_]*[åèüÿeibu])|[ñsc][\W_]*[óuy][\W_]*(?:(?:[÷c][\W_]*)?[êk][\W_]*[àóèiyau](?:[\W_]*[íhn](?:[\W_]*[îo0][\W_]*[éj]|[\W_]*[óàûyiau])?)?|[÷c][\W_]*(?:(?:[üb][\W_]*)?(?:[å¸ÿèeiu]|[åèeiu][\W_]*[éj])|[àa][\W_]*[ðpr][\W_]*[ûàóåeyiau]))|[ãrg][\W_]*(?:[àîoa0][\W_]*(?:[íhn][\W_]*[äd][\W_]*[àîoa0][\W_]*[íhn](?:[\W_]*[ûóyiu])?|[âbv][\W_]*[íhn][\W_]*[îàoa0](?:[\W_]*(?:[ìm]|[åe][\W_]*[äd](?:[\W_]*[ûóàåeyiau]|[\W_]*[îàoa0][\W_]*[ìm](?:[\W_]*[èiu])?)?))?)|[íhn][\W_]*(?:[èiu][\W_]*[äd][\W_]*(?:[ûóåàeyiau]|[îo0][\W_]*[éj])|[óyu][ñsc](?:[\W_]*[àûóyiau]|[\W_]*[îàoa0][\W_]*[ìm](?:[\W_]*[èiu])?)?))|(?:[íhn][\W_]*[åe][\W_]*)?(?:(?:[ç3z][\W_]*[àa]|[îo0][òt]|[ïnp][\W_]*[îo0]|[ïnp][\W_]*(?:[åe][\W_]*[ðpr][\W_]*[åe]|[ðpr][\W_]*[îåèeiou0]|[èiu][\W_]*[ç3z][\W_]*[äd][\W_]*[îo0])|[íhn][\W_]*[àa]|[èiu][\W_]*[ç3z]|[äd][\W_]*[îo0]|[âbv][\W_]*[ûi]|[óyu]|[ðpr][\W_]*[àa][\W_]*[ç3z]|[ç3z][\W_]*[ël][\W_]*[îo0]|[òt][\W_]*[ðpr][\W_]*[îo0]|[óyu])[\W_]*)?(?:[âbv][\W_]*[ûi][\W_]*)?(?:[úüb][\W_]*)?(?:[å¸e][\W_]*[áb6](?:(?:[\W_]*[îå¸àèóeioyau0])?(?:[\W_]*[íhn](?:[\W_]*[íhn])?[\W_]*[ÿóàèüiybau]?)?(?:[\W_]*[âbv][\W_]*[àa])?(?:(?:[\W_]*(?:[èåeiu]ø[\W_]*[üb][\W_]*[ñsc][\W_]*ÿ|[òt][\W_]*(?:(?:[üb][\W_]*)?[ñsc][\W_]*ÿ|[üb]|[åe][\W_]*[ñsc][\W_]*[üb]|[åe]|[îo0]|[èiu][\W_]*[íhn][\W_]*[óûåàeyiau])|(?:ù[\W_]*(?:[èiu][\W_]*[éj]|[àa][\W_]*ÿ|[èåeiu][\W_]*[åe]|[åe][\W_]*[ãrg][\W_]*[îo0])|þ[\W_]*[òt])(?:[\W_]*[ñsc][\W_]*ÿ)?|[åe][\W_]*[ìòmt]|[êk](?:[\W_]*[èàiau])?|[àa][\W_]*[ël](?:[\W_]*[ñsc][\W_]*ÿ)?|[ël][\W_]*(?:[àa][\W_]*[íhn]|[îàoa0](?:[\W_]*[ìm])?|(?:[èiu][\W_]*)?[ñsc][\W_]*[üÿb]|[èiu]|[àa][\W_]*[ñsc][\W_]*[üb])|[ðpr][\W_]*[üb]|[ñsc][\W_]*[ÿüb]|[íhn][\W_]*[îo0]|[÷c][\W_]*(?:[èiu][\W_]*[õxh]|[åe][\W_]*[ñsc][\W_]*[òt][\W_]*[üèibu](?:[\W_]*þ)?)|(?:[òt][\W_]*[åe][\W_]*[ël][\W_]*[üb][\W_]*[ñsc][\W_]*[êk][\W_]*|[ñsc][\W_]*[òt][\W_]*|[ël][\W_]*[èiu][\W_]*[âbv][\W_]*|[÷òtc][\W_]*)?(?:[àa][\W_]*ÿ|[îo0][\W_]*[éåìejm]|[ûi][\W_]*[õéåejxh]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[èiu][\W_]*[åe]|[îo0][\W_]*[ìm][\W_]*[óyu]|[èiu][\W_]*[éj]|[åe][\W_]*[âbv]|[èiu][\W_]*[ìm](?:[\W_]*[èiu])?)|[÷òûéèëijltcu]))?)|[\W_]*[ûi](?:(?:[\W_]*[âbv][\W_]*[àa]|[\W_]*[íhn](?:[\W_]*[íhn])?)(?:(?:[\W_]*(?:[èåeiu]ø[\W_]*[üb][\W_]*[ñsc][\W_]*ÿ|[òt][\W_]*(?:[üb][\W_]*[ñsc][\W_]*ÿ|[üb]|[åe][\W_]*[ñsc][\W_]*[üb]|[åe]|[èiu][\W_]*[íhn][\W_]*[óûåàeyiau])|(?:ù[\W_]*(?:[èiu][\W_]*[éj]|[àa][\W_]*ÿ|[èåeiu][\W_]*[åe]|[åe][\W_]*[ãrg][\W_]*[îo0])|þ[\W_]*[òt])(?:[\W_]*[ñsc][\W_]*ÿ)?|[åe][\W_]*[ìòmt]|[ël][\W_]*(?:(?:[èiu][\W_]*)?[ñsc][\W_]*[üÿb]|[èiu]|[àa][\W_]*[ñsc][\W_]*[üb])|(?:[ñsc][\W_]*[òt][\W_]*|[ël][\W_]*[èiu][\W_]*[âbv][\W_]*|[÷òtc][\W_]*)?(?:[àa][\W_]*ÿ|[îo0][\W_]*[éåìejm]|[ûi][\W_]*[õéåejxh]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[èiu][\W_]*[åe]|[îo0][\W_]*[ìm][\W_]*[óyu]|[èiu][\W_]*[éj]|[åe][\W_]*[âbv]|[èiu][\W_]*[ìm](?:[\W_]*[èiu])?))))|[ðpr][\W_]*[üb]))|ÿ[\W_]*[áb6](?:[\W_]*[îå¸àèóeioyau0])?(?:(?:[\W_]*[íhn](?:[\W_]*[íhn])?[\W_]*[ÿóàèüiybau]?)?(?:(?:[\W_]*(?:[èåeiu]ø[\W_]*[üb][\W_]*[ñsc][\W_]*ÿ|[òt][\W_]*(?:[üb][\W_]*[ñsc][\W_]*ÿ|[üb]|[åe][\W_]*[ñsc][\W_]*[üb]|[åe]|[èiu][\W_]*[íhn][\W_]*[óûåàeyiau])|(?:ù[\W_]*(?:[èiu][\W_]*[éj]|[àa][\W_]*ÿ|[èåeiu][\W_]*[åe]|[åe][\W_]*[ãrg][\W_]*[îo0])|þ[\W_]*[òt])(?:[\W_]*[ñsc][\W_]*ÿ)?|[åe][\W_]*[ìòmt]|[êk](?:[\W_]*[èàiau])?|[àa][\W_]*[ël](?:[\W_]*[ñsc][\W_]*ÿ)?|[ël][\W_]*(?:[àa][\W_]*[íhn]|[îàoa0](?:[\W_]*[ìm])?|(?:[èiu][\W_]*)?[ñsc][\W_]*[üÿb]|[èiu])|[ðpr][\W_]*[üb]|[ñsc][\W_]*[ÿüb]|[íhn][\W_]*[îo0]|[÷c][\W_]*(?:[èiu][\W_]*[õxh]|[åe][\W_]*[ñsc][\W_]*[òt][\W_]*[üèibu](?:[\W_]*þ)?)|(?:[òt][\W_]*[åe][\W_]*[ël][\W_]*[üb][\W_]*[ñsc][\W_]*[êk][\W_]*|[ñsc][\W_]*[òt][\W_]*|[ël][\W_]*[èiu][\W_]*[âbv][\W_]*|[÷òtc][\W_]*)?(?:[àa][\W_]*ÿ|[îo0][\W_]*[éåìejm]|[ûi][\W_]*[õéåejxh]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[èiu][\W_]*[åe]|[îo0][\W_]*[ìm][\W_]*[óyu]|[èiu][\W_]*[éj]|[åe][\W_]*[âbv]|[èiu][\W_]*[ìm](?:[\W_]*[èiu])?)|[÷ìéèëijlmcu]))|(?:[\W_]*[íhn](?:[\W_]*[íhn])?[\W_]*[ÿóàèüiybau]?)))|ÿ[\W_]*[áb6][\W_]*(?:[å¸àèóeiyau][\W_]*)?(?:[íhn][\W_]*(?:[íhn][\W_]*)?(?:[ÿóàèüiybau][\W_]*)?)?[òt])|[ñsc][\W_]*[üúb][\W_]*[åÿ¸e][\W_]*[áb6][\W_]*(?:[óyu]|(?:[åè¸àóeiyau](?:[\W_]*[ël](?:[\W_]*[èîàioau0])?|[\W_]*ø[\W_]*[üb]|[\W_]*[òt][\W_]*[åe])?(?:[\W_]*[ñsc][\W_]*[üÿb])?))|[åe][\W_]*(?:[áb6][\W_]*(?:[óyu][\W_]*[êk][\W_]*[åe][\W_]*[íhn][\W_]*[òt][\W_]*[èiu][\W_]*[éj]|[åe][\W_]*[íhn][\W_]*(?:[üb]|ÿ(?:[\W_]*[ìm])?)|[èiu][\W_]*(?:[öc][\W_]*[êk][\W_]*[àa][\W_]*ÿ|[÷c][\W_]*[åe][\W_]*[ñsc][\W_]*[êk][\W_]*[àa][\W_]*ÿ)|[ël][\W_]*[èiu][\W_]*ù[\W_]*[åe]|[àa][\W_]*(?:[ël][\W_]*[üb][\W_]*[íhn][\W_]*[èiu][\W_]*[êk](?:[\W_]*[èàiau])?|[òt][\W_]*[îo0][\W_]*[ðpr][\W_]*[èiu][\W_]*[éj]|[íhn][\W_]*(?:[òt][\W_]*[ðpr][\W_]*[îo0][\W_]*[ïnp]|[àa][\W_]*[òt][\W_]*[èiu][\W_]*(?:[êk]|[÷c][\W_]*[åe][\W_]*[ñsc][\W_]*[êk][\W_]*[èiu][\W_]*[éj]))))|[äd][\W_]*[ðpr][\W_]*[èiu][\W_]*[òt])|[íhn][\W_]*[åe][\W_]*[âbv][\W_]*[ðpr][\W_]*[îo0][\W_]*[òt][\W_]*ú[\W_]*[åe][\W_]*[áb6][\W_]*[àa][\W_]*[òt][\W_]*[åe][\W_]*[ël][\W_]*[üb][\W_]*[ñsc][\W_]*[êk][\W_]*[èiu][\W_]*(?:[ûèiu][\W_]*[éj]|[àa][\W_]*ÿ|[îo0][\W_]*[åéej]|[ûi][\W_]*[õxh]|[ûi][\W_]*[åe]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[îo0][\W_]*[ìm][\W_]*[óyu])|[óyu][\W_]*(?:[¸åe][\W_]*[áb6][\W_]*(?:[èiu][\W_]*ù[\W_]*[åàea]|[àa][\W_]*[íhn](?:[\W_]*[òt][\W_]*[óyu][\W_]*[ñsc])?(?:[\W_]*[àîoa0][\W_]*[âìbmv]|[\W_]*[ûóåàeyiau])?)|[ðpr][\W_]*[îo0][\W_]*[äd](?:[\W_]*[àîoa0][\W_]*[âìbmv]|[\W_]*[ûóåàeyiau])?|[áb6][\W_]*[ël][\W_]*þ[\W_]*[äd][\W_]*(?:[îo0][\W_]*[êk]|[êk][\W_]*(?:[àîoa0][\W_]*[âìbmv](?:[\W_]*[èiu])?|[èóåàeiyau])?))|[ìm][\W_]*(?:[óyu][\W_]*[äd][\W_]*(?:[îo0][\W_]*[õxh][\W_]*[àa][\W_]*(?:[òt][\W_]*[üb][\W_]*[ñsc][\W_]*ÿ|þ[\W_]*[ñsc][\W_]*[üb]|[åe][\W_]*ø[\W_]*[üb][\W_]*[ñsc][\W_]*ÿ)|[àa][\W_]*(?:[êk](?:[\W_]*[èàiau]|[îo0][ìâbmv])?|[÷c][\W_]*(?:[üb][\W_]*[å¸e]|[èiu][\W_]*[íhn][\W_]*[óûàyiau]|[êk][\W_]*(?:[àèåóeiyau]|[îo0][\W_]*[éj])))|[åe][\W_]*[íhn][\W_]*[üb]|[èiu][\W_]*[ël](?:[\W_]*[àåîûeoia0]?))|[àa][\W_]*[íhn][\W_]*[äd][\W_]*[óàyau]|[ël][\W_]*(?:[èiu][\W_]*[íhn]|ÿ))|(?:[ìm][\W_]*(?:[îo0][\W_]*[ç3z][\W_]*[ãrg]|[óyu][\W_]*[äd])|[äd][\W_]*(?:[îo0][\W_]*[ël][\W_]*[áb6]|[óyu][\W_]*[ðpr])|[ñsc][\W_]*[êk][\W_]*[îo0][\W_]*[òt]|æ[\W_]*[èiu][\W_]*[äd])[\W_]*[àîoa0][\W_]*(?:[õxh][\W_]*[óyu][\W_]*[èéÿiju]|[¸åe][\W_]*[áb6](?:[\W_]*[åîeo0][\W_]*[âbv]|[\W_]*[ûàia]|[\W_]*[ñsc][\W_]*[òt][\W_]*[âbv][\W_]*[îóoy0u](?:[\W_]*[ìm])?|[èiu][\W_]*[ç3z][\W_]*[ìm])?)|(?:[íhn][\W_]*[åe][\W_]*|[ç3z][\W_]*[àa][\W_]*|[îo0][\W_]*[òt][\W_]*|[ïnp][\W_]*[îo0][\W_]*|[íhn][\W_]*[àa][\W_]*|[ðpr][\W_]*[àa][\W_]*[ñç3szc][\W_]*)?(?:[ïnp][\W_]*[èiu][\W_]*[ç3z][\W_]*[äd][\W_]*[èÿåeiu]|(?:ú)?[å¸e][\W_]*[áb6][\W_]*[àa])[\W_]*(?:(?:[òt][\W_]*[üb][\W_]*[ñsc][\W_]*ÿ|[òt][\W_]*[üb]|[ël][\W_]*[èiu]|[àa][\W_]*[ël]|[ël]|c[\W_]*[üb]|[èiu][\W_]*[òt]|[èiu]|[òt][\W_]*[åe]|[÷c][\W_]*[óyu]|ø[\W_]*[üb])|(?:[éÿèiju]|[èåeiu][\W_]*[ìm](?:[\W_]*[èiu])?|[éj][\W_]*[ñsc][\W_]*(?:[êk][\W_]*(?:[ûèiu][\W_]*[éåej]|[àa][\W_]*ÿ|[îo0][\W_]*[åe]|[ûi][\W_]*[õxh]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[îo0][\W_]*[ìm][\W_]*[óyu])|[òt][\W_]*[âbv][\W_]*[îóàoya0u](?:[\W_]*[ìm])?)))|[ïnp][\W_]*[åèûeiu][\W_]*[äd][\W_]*[àåýîeoa0][\W_]*[ðpr](?:(?:[\W_]*[àa][\W_]*[ñç3szc](?:(?:[\W_]*[òt])?(?:[\W_]*[ûi]|[\W_]*[îàoa0][\W_]*[ìm](?:[\W_]*[èiu])?|[\W_]*[êk][\W_]*[àèiau])?|(?:[\W_]*[ûóàåeyiau]|[\W_]*[îàoa0][\W_]*[ìm](?:[\W_]*[èiu])?|[\W_]*[îo0][\W_]*[âbv])))|[\W_]*(?:[ûóàåeyiau]|[îàoa0][\W_]*[ìm](?:[\W_]*[èiu])?|[îo0][\W_]*[âbv]|[íhn][\W_]*ÿ))?|[ïnp][\W_]*[èiu][\W_]*[ç3z][\W_]*(?:[üb][\W_]*)?[äd][\W_]*(?:[¸åe][\W_]*(?:[íhn][\W_]*[ûi][\W_]*ø(?:[\W_]*[üb])?|[øíæhn](?:[\W_]*[üb])?)|[óyu][\W_]*(?:[éj](?:[\W_]*[òt][\W_]*[åe])?|[íhn](?:[\W_]*[ûi])?)|þ[\W_]*(?:[êk](?:[\W_]*(?:[àåóèeiyau]|[îo0][\W_]*[âbv]|[àa][\W_]*[ìm](?:[\W_]*[èiu])?))?|[ël](?:[üèibu]|[åe][\W_]*[éj]|ÿ[\W_]*[õìmxh]))|[åe][\W_]*[öc]|[àîoa0][\W_]*(?:[íhn][\W_]*[óyu][\W_]*)?[òt][\W_]*(?:[èiu][\W_]*[éj]|[àa][\W_]*ÿ|[îo0](?:[\W_]*[åéej])?|[ûi][\W_]*[åéõejxh]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[îo0][\W_]*[ìm][\W_]*[óyu]|[åe][\W_]*[åe]|[àóüåûeyibau])|[àa][\W_]*[íhn][\W_]*[óyu][\W_]*[ël](?:[\W_]*[àèiau])?|[ûåóèàeiyau]|[îàoa0][\W_]*(?:[éj]|[õxh][\W_]*[óyu][\W_]*[éj]|[å¸e][\W_]*[áb6]|(?:[ðpr][\W_]*[îo0][\W_]*[òt]|[ãrg][\W_]*[îo0][\W_]*[ël][\W_]*[îo0][\W_]*[âbv])[\W_]*(?:[ûèiu][\W_]*[éj]|[àa][\W_]*ÿ|[îo0][\W_]*[åéej]|[ûi][\W_]*[õxh]|[ûi][\W_]*[åe]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[îo0][\W_]*[ìm][\W_]*[óyu])|[áb6][\W_]*(?:[ðpr][\W_]*[àa][\W_]*[òt][\W_]*[èiu][\W_]*ÿ|[îo0][\W_]*[ël](?:[\W_]*[àûóyiau])?)))|[ïnp][\W_]*(?:[àa][\W_]*[äd][\W_]*[ël][\W_]*[àîûoia0]|[îàoa0][\W_]*[ñsc][\W_]*[êk][\W_]*[óyu][\W_]*[äd][\W_]*(?:[ûóàåeyiau]|[îàoa0][\W_]*[ìm](?:[\W_]*[èiu])?)|[èåeiu][\W_]*[äd][\W_]*(?:[èiu][\W_]*[êk]|[ðpr][\W_]*[èiu][\W_]*[ël](?:[\W_]*[ël])?)(?:[\W_]*[îàoa0][\W_]*[ìâbmv]|[\W_]*[èóåîûàeioyau0])?|[ðpr][\W_]*[îo0][\W_]*[áb6][\W_]*[ël][\W_]*ÿ[\W_]*[äd][\W_]*[îo0][\W_]*[ìm])|(?:[ç3z][\W_]*[àa][\W_]*|[îo0][\W_]*[òt][\W_]*|[íhn][\W_]*[àa][\W_]*)?[ñsc][\W_]*[ðpr][\W_]*(?:[àa][\W_]*[òt][\W_]*[üb]|[àa][\W_]*[ël](?:[\W_]*[èiu])?|[eóèiyu])|[ñsc][\W_]*[ðpr][\W_]*[àa][\W_]*(?:[êk][\W_]*(?:[àåèóeiyau]|[îo0][\W_]*[éj])|[íhn](?:[\W_]*[íhn])?(?:[üb]|(?:[\W_]*[ûi][\W_]*[éåej]|[\W_]*[àa][\W_]*ÿ|[\W_]*[îo0][\W_]*[åe]))|[ël][\W_]*[üb][\W_]*[íhn][\W_]*[èiu][\W_]*[êk](?:[\W_]*[èiu]|[\W_]*[îàoa0][\W_]*[ìm])?)|(?:[ç3z][\W_]*[àa][\W_]*)?[òt][\W_]*[ðpr][\W_]*[àa][\W_]*[õxh][\W_]*(?:[íhn][\W_]*(?:[óyu](?:[\W_]*[òt][\W_]*[üb](?:[\W_]*[ñsc][\W_]*ÿ)?|[\W_]*[ñsc][\W_]*[üb]|[\W_]*[ël](?:[\W_]*[àèiau])?)?|[åèeiu][\W_]*ø[\W_]*[üb][\W_]*[ñsc][\W_]*ÿ)|[àa][\W_]*(?:[ël](?:[\W_]*[àîèioau0])?|[òt][\W_]*[üb](?:[\W_]*[ñsc][\W_]*ÿ)?|[íhn][\W_]*(?:[íhn][\W_]*)?(?:[ûèiu][\W_]*[éj]|[àa][\W_]*ÿ|[îo0][\W_]*[éåej]|[ûi][\W_]*[õxh]|[ûi][\W_]*[åe]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[îo0][\W_]*[ìm][\W_]*[óyu])))|(?:[íhn][\W_]*[èåeiu][\W_]*|[ïnp][\W_]*[îo0][\W_]*|[íhn][\W_]*[àa][\W_]*|[îàoa0][\W_]*(?:[òt][\W_]*)?|[äd][\W_]*[àîoa0][\W_]*|[ç3z][\W_]*[àa][\W_]*)?(?:(?:[ôf][\W_]*[èiu][\W_]*[ãrg]|[õxh][\W_]*(?:[åèeiu][\W_]*(?:[éj][\W_]*)?[ðpr]|[ðpr][\W_]*[åe][\W_]*[íhn]|[óyu](?:[\W_]*[éj])?))(?:[\W_]*[åî¸eo0][\W_]*[âbv](?:[\W_]*[àa][\W_]*þ[\W_]*ù|[\W_]*ø)?)?(?:[\W_]*[àèåeiau][\W_]*[ëílhn])?(?:[íhn])?(?:[\W_]*(?:[èàî¸ÿûåeioau0][þÿèåâìébeijmvu]|ÿ[\W_]*(?:[ìm](?:[\W_]*[èiu])?|[ðpr][\W_]*(?:þ|[èiu][\W_]*(?:[òt](?:[\W_]*[üåeb][\W_]*[ñsc][\W_]*[ÿüb])?|[ël](?:[\W_]*[èîàioau0])?))|[÷c][\W_]*(?:[àèiau][\W_]*[òt](?:[\W_]*[ñsc][\W_]*ÿ)|[èiu][\W_]*[ël](?:[\W_]*[èîàioau0])?)|[÷c](?:[\W_]*[üb])?)|[åe][\W_]*(?:[òt][\W_]*(?:[îo0][\W_]*[éj]|[àüóybau])|[åe][\W_]*(?:[òt][\W_]*[åe]|ø[\W_]*[üb]))|[àûîóÿþéèijoyau0]|[ël][\W_]*[èîiou0]|[÷c][\W_]*[óyu])))|(?:[ôf][\W_]*[èiu][\W_]*[ãrg]|[õxh][\W_]*(?:[åèeiu][\W_]*(?:[éj][\W_]*)?[ðpr]|[ðpr][\W_]*[åe][\W_]*[íhn]|[óyu][\W_]*[éj]))|[õxh][\W_]*[óyu][\W_]*(?:[å¸èeiu][\W_]*(?:[ñsc][\W_]*[îo0][\W_]*[ñsc]|[ïnp][\W_]*[ël][\W_]*[åe][\W_]*[òt]|[íhn][\W_]*[ûi][\W_]*ø)(?:[\W_]*[àûóyiau]|[\W_]*[îàoa0][\W_]*[ìm](?:[\W_]*[èiu])?|[íhn][\W_]*(?:[ûèiu][\W_]*[éj]|[àa][\W_]*ÿ|[îo0][\W_]*[éåej]|[ûi][\W_]*[õxh]|[ûi][\W_]*[åe]|[ûi][\W_]*[ìm](?:[\W_]*[èiu])?|[óyu][\W_]*þ|[îo0][\W_]*[ìm][\W_]*[óyu]))?|[äd][\W_]*[îo0][\W_]*¸[\W_]*[áb6][\W_]*[èiu][\W_]*[íhn][\W_]*(?:[îo0][\W_]*[éj]|[àåûóeyiau]))|[áb6][\W_]*[ël][\W_]*ÿ(?:[\W_]*[äòdt][\W_]*(?:[üb]|[èiu]|[êk][\W_]*[èiu]|[ñsc][\W_]*[òt][\W_]*[âbv][\W_]*[îo0]|[ñsc][\W_]*[êk][\W_]*(?:[îo0][\W_]*[åéej]|[èiu][\W_]*[åe]|[àa][\W_]*ÿ|[èiu][\W_]*[éj]|[îo0][\W_]*[ãrg][\W_]*[îo0])))?|[âbv][\W_]*[ûi][\W_]*[áb6][\W_]*[ël][\W_]*ÿ[\W_]*[äd][\W_]*(?:[îo0][\W_]*[êk]|[êk][\W_]*(?:[èóàåeiyau]|[àa][\W_]*[ìm](?:[\W_]*[èiu])?))|(?:[ç3z][\W_]*[àîoa0][\W_]*)(?:[ïnp][\W_]*[àîoa0][\W_]*[äd][\W_]*[ël][\W_]*[îûàoia0]|[ël][\W_]*[óyu][\W_]*[ïnp][\W_]*(?:[îo0][\W_]*[éj]|[àåûóeyiau]))|ø[\W_]*[ël][\W_]*þ[\W_]*[õxh][\W_]*(?:[àóåèeiyau]|[îo0][\W_]*[éj])|[àa][\W_]*[íhn][\W_]*[óyu][\W_]*[ñsc](?:[\W_]*[åàûóeyiau]|[\W_]*[îo0][\W_]*[ìm])?|(?:\w*(?:[õxh](?:[ðpr][åe][íhn]|[óyu][èiu])|[ïnp][åèeiu](?:[ç3z][äd]|[äd](?:[åàîeoa0][ðpr]|[ðpr]))|[áb6][ël]ÿ[äd]|[îo0][õxh][óyu][åe]|[ìm][óyu][äd][åîèàeioau0]|[äd][åe][ðpr][üb]|[ãrg][àîoa0][âbv][íhn]|[óyu][å¸e][áb6])|[õxh][\W_]*(?:[ðpr][\W_]*[åe][\W_]*[íhn]|[óyu][\W_]*[éèåÿeiju])|[ïnp][\W_]*[åèeiu][\W_]*(?:[ç3z][\W_]*[äd]|[äd][\W_]*(?:[åàîeoa0][\W_]*[ðpr]|[ðpr]))|[áb6][\W_]*[ël][\W_]*ÿ[\W_]*[äd]|[îo0][\W_]*[õxh][\W_]*[óyu][\W_]*[åe]|[ìm][\W_]*[óyu][\W_]*[äd][\W_]*[åîèàeioau0]|[äd][\W_]*[åe][\W_]*[ðpr][\W_]*[üb]|[ãrg][\W_]*[àîoa0][\W_]*[âbv][\W_]*[íhn]|[óyu][\W_]*[å¸e][\W_]*[áb6]|[¸åe][áb6])\w+';
		$self->{'bip'}='áèï';
	}

	bless $self,$class;
	return $self;
		
}


sub remove_slang
{
	
	my ($self,$slang)=@_;

	
	eval
	{
		#$slang =~s/(?<=[\W_])($self->{'word'})(?=[\W_])/$self->{'bip'}/gi;
		#$slang =~s/(\b|_)(?:$self->{'word'})(\b|_)/$1bip$2/gi;	
		#$slang =~s/(?:\b|_)(?:$self->{'word'})(?:\b|_)//gi;

		$slang =~s/(?:\b|(?<=_))(?:$self->{'word'})(?:\b|(?=_))/$self->{'bip'}/gi;
  	
	};
	
	die "Fatal error: bad regular expression!" if $@;

	return $slang; 
}


sub detect_slang
{
	
	my ($self,$slang)=@_;
	my $match;
	
	eval 
	{
		$match=($slang =~m/(?:\b|(?<=_))(?:$self->{'word'})(?:\b|(?=_))/i);	
		
     };
	
	 die "Fatal error: bad regular expression!" if $@;

	return $match; 
}

sub set_bip
{
	my ($self,$bip)=@_;
	$self->{'bip'}=$bip;
}

sub load_dict
{
	my ($self,$file)=@_;
	
	local($/) = undef;
	my $FH = new FileHandle("$file")||die "Can't open $file!";
	my $dict=<$FH>;
	close($FH);
  	$dict=~ s/\015?\012/|/g;
  	
  	eval { '1'=~m/$dict/; };
	die "Bad regular expression in dictionary $file!" if $@;
	
	$self->{'word'}=$self->{'word'}.'|'.$dict;

}



1;

__END__


=head1 NAME

Lingua::RU::Antimat - Perl Module for removal Russian slang from chat, guestbooks, etc.

=head1 SYNOPSIS

use POSIX qw(locale_h);

use Lingua::RU::Antimat;

use locale;

setlocale(LC_CTYPE,"ru_RU.CP1251"); 

$dirty_text='text with slang';

$mat= Lingua::RU::Antimat->new;

#load dictionary with additional words

$mat->load_dict('/home/www/badwords');

$mat->set_bip('Sorry!');

$clean_text=$mat->remove_slang($dirty_text);


=head1 RUSSIAN DOCUMENTATION

Detailed Russian documentation and tutorial available on http://www.tcen.ru/antimat

=head1 DESCRIPTION

This module will remove Russian slang from a string. 'Mat' is Russian name for such bad words and  that is why this module is called Antimat. 

=over

=item $mat=Lingua::RU::Antimat->new($codepage);

This method creates a new object and returns it.
If new() is called without any arguments, the module will use templates for text in encoding win-1251.
If your text in encoding KOI8-R set $codepage equal 'koi8'.

Examples:

$mat=Lingua::RU::Antimat->new; #for text in win-1251

$mat=Lingua::RU::Antimat->new('koi8'); #for text in KOI8-R 

=item $clean_text=$mat->remove_slang($dirty_text);

Method remove_slang takes string and returns string where all 
bad words replaced on Russian analog 'bip' or string you set in method set_bip
which is described later.

=item $badwords=$mat->detect_slang($dirty_text);

Method detect_slang takes string and returns boolean value. This value equal 1
if there is bad word in the string and 0 if there is no such words in the string. 

=item $mat->set_bip($bip);

Set the string (usually word) which will replace bad words in method remove_slang.

Examples:

$mat->set_bip(''); #let strip out slang

$mat->set_bip('I am sorry!'); #long but also correct

=item $mat->load_dict($file);

This method loads dictionary with additional bad words. Each string in the dictionary should be a word or regular expression. $file could be relative or absolute path to the dictionary.

=back

=head1 SEE ALSO

Detailed Russian documentation on http://www.tcen.ru/antimat

perllocale manpage

=head1 CREDITS

Andrey Skorohod, marlenus@marlenus.com for his bug reports.
Vladimir Zhdanov, vovka@lg.kamaz.net for his bug report.
Andrey Sharapov, Sharapov@tut.by for his suggestions.
Yury Voloshin, xtc@norilsk.net for his bug report and suggestions.

Thanks!

=head1 AUTHOR

Ilya Soldatkin, arc@tcen.ru

Drop me a line if you deploy this module on your site. Think about this as a small contribution to my efforts for writing and supporting this module. I can not improve this module if I will know that no one uses it. 

=head1 COPYRIGHT

Copyright 2001-2003 Ilya Soldatkin. All rights reserved.

This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

=cut