Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
//<syntaxhighlight lang=javascript>
var AutoEd_baseurl = 'http://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Jonesey95/AutoEd/';
if (location.protocol === 'https:') {
  AutoEd_baseurl = 'https://en.wikipedia.org/w/index.php?action=raw&ctype=text/javascript&title=User:Jonesey95/AutoEd/';
}
 
$.when( $.ready, mw.loader.using( 'jquery.textSelection' ) ).then(function() {
  mw.loader.load(AutoEd_baseurl + 'core8.js'); //Imports the "framework" script needed to make this function
});

//Sets variable configuration - one-off fixes 
//autoEdTag8 = "Fixing error: [[:Category:Lang and lang-xx template errors]] using [[WP:AutoEd|AutoEd]]"; //Tweaks edit summary
//autoEdLinkName8 = "AutoEd one-off"; //Changes the link name at the top of the page
//autoEdLinkHover8 = "Run AutoEd to fix one-off problem"; //When user hovers over link

//Sets variable configuration - Linter fixes 
autoEdTag8 = "Fix [[Special:LintErrors|Linter]] errors. "; //Tweaks edit summary
autoEdLinkName8 = "AutoEd Linter"; //Changes the link name at the top of the page
autoEdLinkHover8 = "Run AutoEd to fix Linter errors"; //When user hovers over link

//Set up function
function ReplaceDOI(str) { //function to fix one-off problem

  //Fix Linter individual signatures

  str = str.replace(/(<span style="font\-family:Times New Roman">\[\[User_talk:Darth Mike\|<font color="black">)<sub>(\()(<font color="red">\'\'\'Talk\'\'\')(\]\]<\/span> )<sub>(• <span style="font\-family:Times New Roman">\[\[Special:Contributions\/Darth Mike\|<font color="red">)<sub>(\'\'\'Contribs\'\'\')(<font color="black">\))(\]\])<\/sub>(<\/span>)/gi,'$1$2<\/font>$3<\/font>$4$5$6<\/font>$7<\/font>$8$9');
	
  str = str.replace(/(\|<span style="color: #43b0ef;">NGC 54<\/span> )<sub>(\]\])/gi,'$1$2');
  str = str.replace(/(\|<span style="color: #7cb8f4;">contribs<\/span>)<sub>(\]\])/gi,'$1$2');
  str = str.replace(/(\|<span style="color: #7cb8f4;">talk<\/span> )<sub>(\]\])/gi,'$1$2');
					
  str = str.replace(/(\|\'\'\'<font color="#666666">«&nbsp;₣M₣&nbsp;»)(\'\'\'\]\])(<\/font>)/gi,'$1$3$2');
  str = str.replace(/(\|\'\'\'<font color="#666666">«&nbsp;Ryūkotsusei&nbsp;»)(\'\'\'\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/<font colour="navy"><b>(\[\[User:nathanrdotcom\|Natha\]\]\[\[User:ILovePlankton\/My loyalties to my friends\|<font color="#336666">n<\/font>\]\] <sup>\(\[\[User talk:nathanrdotcom\|talk\]\]\)<\/sup>)<\/b><\/font>/gi,'<b style="color:navy">$1<\/b>');
  str = str.replace(/<font colour="navy"><b>(\[\[User:nathanrdotcom\|Natha\]\]\[\[User:ILovePlankton\/My loyalties to my friends\|<span style="color:#336666;">n<\/span>\]\] <sup>\(\[\[User talk:nathanrdotcom\|talk\]\]\)<\/sup>)<\/b><\/font>/gi,'<b style="color:navy">$1<\/b>');

  str = str.replace(/(<big>\[\[User:MichaelQSchmidt\|<font color="gold">\'\'\'MQS\'\'\')(\]\]<\/big>)/gi,'$1<\/font>$2');

  str = str.replace(/(\-\-&nbsp;\[\[User:AxG\|<font color=#000>\'\'\'<nowiki>\[\[<\/nowiki>\'\'\'&nbsp;<font face="SwissMad, Arial">axg<\/font>)(\]\])/gi,'$1<\/font>$2');

  str = str.replace(/(\[\[File:Pictogram voting comment\.svg\|15px\|link=\]\]&nbsp;)\'\'\'\'\'\'(<span style="background\-color:lightblue;">\[\[User:Olowe2011)/gi,'$1$2');

  str = str.replace(/(\| style=\"text\-align:center;\" \| \'\'The following is a discussion that has been placed in a collapse box for improved usability\.)\'\'\'<\/span>(\'\'\n\|\-)/gmi,'$1$2');

  str = str.replace(/(\| style=\"text\-align:center;\" \| \'\'The above is an extended discussion that has been collapsed for improved usability\.)\'\'\'<\/span>(\'\'\n\|})/gmi,'$1$2');



  str = str.replace(/(<font color="green">)(\'\'\')(&#10004;<\/font> \[\[User:Olaf Stephanos\|Olaf Stephanos\]\]\'\'\')/gi,'$2$1$3');

  str = str.replace(/(<font )colour="white" (face="segoe script">Soham[a-z\d]*<\/font>)/gi,'$1$2');
  str = str.replace(/(1998\|<small>)<font colour="white">(☸)<\/font>(<\/small>)/gi,'$1$2$3');


  str = str.replace(/(\[\[User:Target360YT\/t\|<span style="color:#ff0000">talk)(\]\] · \[\[User:Target360YT\/c\|contribs)(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(:\'\'Add \*\'\'\'Support\'\'\' or \*\'\'\'Oppose\'\'\' followed by an optional one\-sentence explanation, then sign your opinion with \'\'<nowiki>~~~~<\/nowiki>)\'\'/gi,'$1');

  str = str.replace(/(\[\[Pi\|<font color="white">Pi)(\]\] [≈=] 3)/gi,'$1<\/font>$2');

  str = str.replace(/>\|(\[\[Image:Gamepad.svg\|60px\]\]<\/span><\/span>)/gi,'>$1');
  str = str.replace(/>\|(\[\[Image:Nuvola apps kbackgammon engine.png\|60px\]\]<\/span><\/span>)/gi,'>$1');

  str = str.replace(/<font color="(#[0F8]+)">(T<small>ALK<\/small>)<\/font>/gi,'<span style="color:$1;">$2<\/span>');
  str = str.replace(/(\'\'\'\[\[User:Fastily\|<span style=\'font\-family: "Trebuchet MS"; color:#[0F8]+\'><big>F<\/big><small>ASTILY<\/small>)(\]\]\'\'\' <sup><small>\[\[User talk:Fastily\|\(<span style="color:#[0F8]+;">T<small>ALK<\/small><\/span>\)\]\]<\/small><\/sup>)(<\/span>)/gi,'$1$3$2');


  str = str.replace(/(\[\[User:Ocrasaroon\|<span style="color:#004455">ocrasaroon<\/span>)\|<\/span>(\]\] *\[\[User_talk:Ocrasaroon\|<span style="color:#004455"><sup>blah blah blah<\/sup><\/span>\]\])<\/span>/gi,'$1$2');

  str = str.replace(/(\'\'\')(<span style="font\-family:times new roman;">)(\[\[User:hmwith\|<span style="background:#999;color:#fff;padding:0 4px">hmwith<\/span>\]\]\'\'\')/gi,'$2$1$3');
  str = str.replace(/(\'\'\')(<span style="font\-family:times new roman;">)(\[\[User:hmwith\|<span style="color:#666;">hmwith<\/span>\]\]\'\'\')/gi,'$2$1$3');

  str = str.replace(/(\'\'\'\[\[User_talk:John Kenney\|k)(\'\'\')(\]\] )/gi,'$1$3$2');
  str = str.replace(/(\'\'\'\[\[User_talk:John Kenney\|Kenney)(\'\'\')(\]\] )/gi,'$1$3$2');
  str = str.replace(/(\'\'\'\[\[User_talk:John Kenney\|k\]\])( [012])/gi,'$1\'\'\'$2');

  str = str.replace(/(<span style="font\-family:Papyrus;">\[\[User:Darth Mike\|\'\'\'&nbsp;Darth Mike&nbsp;)<\/span>(\'\'\'\]\]<sup>\[\[User_talk:Darth Mike\|\'\'\'\(talk\)\'\'\'\]\]<\/sup><\/span>)/gi,'$1$2');

  str = str.replace(/(\[\[User_talk:Kungming2\|)(<font color="#999999">)(<sup>)(\(Talk\)<\/font><\/sup>\]\])/gi,'$1$3$2$4');

  str = str.replace(/(><sub>\'\'talk to me\'\'<\/sub>)(\]\])(<\/span>)/gi,'$1$3$2 ');

  str = str.replace(/(<sup>\(\[\[User talk:Tetra quark\|talk\]\]\))(\'\'\')(<\/sup>)/gi,'$1$3$2 ');

  str = str.replace(/<font face="">( \'*\[\[User:Tellyaddict)/gi,'$1');

  str = str.replace(/<font face=""> \[\[User:steven130793\|<b><font color="#DD0000"><span style="color:#3366ff;">Steven<\/span><\/font><\/b>\]\]\[\[user talk:steven130793\|<b><span style="color:#ff0000;">130793<\/span><\/b>\]\]<\/font>/gi,' \[\[User:steven130793\|<b style="color:#3366ff">Steven<\/b>\]\]\[\[user talk:steven130793\|<b style="color:#ff0000;">130793<\/b>\]\]');

  str = str.replace(/<font colour="Blue" face="Garamond"><small>(Conversation is a beautiful thing\.)<\/small><\/font>/gi,'<small style="color:blue; font-family:Garamond;">$1<\/small>');

  str = str.replace(/(\|\'\'"Here's hoping that the worst end of your trail is behind you<br\/>That Dad Time be your friend from here to the end<br\/>And sickness nor sorrow don't find you.")(<br)/gi,'$1\'\'$2 ');

  str = str.replace(/(\'\'\' <sub> \(\[\[user_talk:Jonomacdrones\|talk\]\]\) <\/sub>\'\') (\'\'\')/gi,'$1$2 ');

  str = str.replace(/(\|<sup>It has to be good)(\]\])(<\/sup>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Adog\|\'\'\'<span style="color:#00A2FF">Adog<\/span>)(\]\])/gi,'$1\'\'\'$2');

  str = str.replace(/(<b>The Muslim<\/b>&nbsp;<\/span><\/span><\/small>)\'\'(\]\])\'\' /gi,'$1$2 ');

  str = str.replace(/(\[\[User:Katalaveno\|)\'\'\'<span( style="color:green;">κaτa<span title="Representation in the International Phonetic Alphabet \(IPA\)" class="IPA">ʟ<\/span>aveno)\'\'\'<\/span>(\]\])/gi,'$1<b$2<\/b>$3');

  str = str.replace(/(>\'\'\'Mr\.crabby\'\'\'<\/span>\]\] )\'\'\'\'\'\'\'\'\'\'( \'\'<)/gi,'$1$2');

  str = str.replace(/(Freechild\]\] )\|( \'\'<small>\[\[User talk:Freechild \|talk to me\]\])(\'\')(<\/small>)/gi,'$1&#124;$2$4$3');

  str = str.replace(/(\[\[User:Blueag0*9\|)(<span style="color:blue;">)\'\'\'(Blue<\/span><span style="color:maroon;">)<b>(a<span style="color:#A9A9A9;">g<\/span>9)<\/b>\'\'\'(<\/span>)(\]\] \(\[\[User talk:Blueag0*9\|Talk\]\] )\|( \[\[Special:Contributions\/Blueag0*9\|contribs\]\]\))/gi,'$1<b>$2$3$4$5<\/b>$6&#124;$7');
  str = str.replace(/(\[\[User:Blueag0*9\|)(<span style="color:blue;">)\'\'\'(Blue<\/span><span style="color:maroon;">)<b>(a<span style="color:#A9A9A9;">g<\/span>9)<\/b>\'\'\'(<\/span>)(\]\])/gi,'$1<b>$2$3$4$5<\/b>$6');
  str = str.replace(/(\[\[User:Blueag0*9\|\'\'\'<span style="color:white;">Blue<\/span>\'\'\')(<\/span>)(<span style="background\-color: #8C2633; color: white">\'\'\'Ag09\'\'\')(\]\]<\/span>)/gi,'$1$3$2$4');


  str = str.replace(/(\[\[v:Portal:Research\|<b><span style="color:green;">RESEARCH<\/span>)(\]\] \[\[User talk:La comadreja\|<span style="color:navy;">\(talk\)<\/span>\]\])(<\/b>)/gi,'$1$3$2');

  str = str.replace(/(\'\'\[\[User talk:Visioncurve\|<span style="font\-family:Verdana;color:green;">[a-z ,]+)(\]\]\'\')(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\[\[User:Visioncurve\|<span style="font\-family:Verdana;color:purple;">[a-z ,]+)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<strong>)( \[\[User:RhinosF1\|<span style="color: #0000ff;">)(Rhinos<\/strong><em>F1<\/em><\/span>\]\])/gi,'$2$1$3');

  str = str.replace(/(\[\[User:2D Backfire Master\|\'\'\'<span style="color:black">2D Maestro<\/span>)(\]\])(\'\'\')( <sup>)/gi,'$1$3$2$4');

  str = str.replace(/(\|<span style="background:#1047AB; color:white; padding:2px;"><small><sup>talk<\/sup>)(\]\])(<\/small><\/span>)/gi,'$1$3$2');

  str = str.replace(/(<span style="font-family:Ubuntu;">\'\'\'\[\[User:Thepenguin9[a-z]*\|<span style="color:#5828ee">Thepenguin9<\/span>\]\])( \(\'\'\'\[\[User talk:Thepenguin9[a-z]*\|talk\]\]\'\'\'\)<\/span> )/gi,'$1\'\'\'$2');

  str = str.replace(/(\[\[User:DatGoodDude342\|)(<b>)(<span style="color:#525456">Dat<\/span>\]\]\[\[User talk:DatGoodDude342\|<span style="color:#8C92AC">Good<\/span>\]\]\[\[Special:Contributions\/DatGoodDude342\|<span style="color:#0080C5">Dude<\/span>\]\]342<\/b>)/gi,'$2$1$3');

  str = str.replace(/(\'\'\'\[\[User:CiTrusD\|<font color=#151B8D>CiTrusD)(\]\] \'\'\')(<\/font>)<\/big>(<sup><small>\[\[User_Talk:CiTrusD\|<font color=#7E2217>Talk here\!)(\]\])(<\/sup>)(<\/small>) /gi,'$1$3$2$4<\/font>$5$7$6 ');

  str = str.replace(/(<sup> \[\[User talk:NancyHeise#top\|\'\'\'<span style="font\-family:verdana;"><span style="color:#F6ADC6;">talk<\/span><\/span>)(\]\]<\/sup>)/gi,'$1\'\'\'$2');

  str = str.replace(/(\[\[User talk:Cans48\|)<font color="red">\'\'(\[t)<\/font>(\]\])/gi,'$1<i style="color:red">$2<\/i>$3');
  str = str.replace(/(\[\[User:Cans48\|)<font color="orange">(❦Cans48☙)<\/font>(\]\])/gi,'$1<span style="color:orange">$2<\/span>$3');
  str = str.replace(/(\[\[Special:Contributions\/Cans48\|)<font color="green">(\'\'c\]\'\')<\/font>(\]\])/gi,'$1<i style="color:green">$2<\/i>$3');

  str = str.replace(/(\[\[User talk:Trekphiler\|)(<font [face="cursive" ]*color="#[A-F\d]+">)(<sup><small>)(any time you\'re ready, Uhura)(<\/small> <\/sup>)(\]\])(<\/font>)/gi,'$1$3$2$4$7$5$6');
  str = str.replace(/(\[\[User talk:Trekphiler\|)(<span style="color:#[A-F\d;]+">)(<sup><small>)(any time you\'re ready, Uhura)(<\/small> <\/sup>)(\]\])(<\/span>)/gi,'$1$3$2$4$7$5$6');

  str = str.replace(/(<)font color=(font color="800000)0*(">\-talk\-<\/font>)/gi,'$1$2$3');

  str = str.replace(/<sup>(\[\[User talk:Jtdirl\|<sup style="color:blue;">\(caint\)<\/sup>\]\] [012])/gi,'$1');

  str = str.replace(/(\-\- \[\[User:Bblackmoor\|BBlackmoor\]\] <sup>\[\[User_talk:Bblackmoor\|\(talk\)\]\]<\/sup>)<\/small>( [•&bull;\d\- :Z]+)<\/small>/gi,'$1$2');

  str = str.replace(/(>\'\'Dark)( <font color="#120a8f">\'\'Falls\'\'<\/font>)/gi,'$1\'\'$2');

  str = str.replace(/(<span style="color:#007BA7">\'*DarkAngel\'*)(\]\])/gi,'$1<\/span>$2');

  str = str.replace(/(>\'\'\'\'\'Darkbane)(<\/span>)(\'\'\'\'\')(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(<sup><small>\(\[\[User talk:SoothingR\|pour\]\]\))(<\/sup>)(<\/small>)/gi,'$1$3$2');

  str = str.replace(/<font color="#[C0][C0]6600;">([a-z ]+)<\/font>/gi,'<span style="color:#CC6600">$1<\/span>');

  str = str.replace(/<tt><font color="blue">\'\'\'\|\'\'\'<\/font><\/tt>/gi,'<b style="color:blue;font\-family: monospace, monospace;">\&#124;</b>');
  str = str.replace(/(\[\[User:Dp462090\|<b><)tt(>Dp462090<\/)tt(><\/b>\]\])/gi,'$1kbd$2kbd$3');
  str = str.replace(/(\[\[User_talk:Dp462090\|<)tt(>Talk<\/)tt(>\]\])/gi,'$1kbd$2kbd$3');

  str = str.replace(/(\[\[User:Orfen\|<font color=#FF0000><font face="arial"><b><i>O<font color=#990000>r<\/font><font color=#660000>f<\/font><font color=#330000>e<\/font><font color=#000000>n<\/font>)(<\/b>)(<\/i>)(<\/font><\/font>\]\]&nbsp;\'\'\'<\/font><sup><small>\[\[User_Talk:Orfen\|<font color=#FF0000><font face="arial"><u>User Talk<\/u><\/font><\/font>\]\])(<\/sup>)<\/u>(<\/small>) \|/gi,'$1$3$2$4$6$5 \&#124;');
  str = str.replace(/(\[\[User:Orfen\|<font color=#ff0000><font face="arial"><b><i>Orfen<\/i><\/b><\/font><\/font>\]\]&nbsp;\'\'\'<\/font><sup><small>\[\[User_Talk:Orfen\|<font color=#FF0000><font face="arial"><u>User Talk<\/u><\/font><\/font>\]\])(<\/sup>)<\/u>(<\/small>) \|/gi,'$1$3$2 \&#124;');

  str = str.replace(/(\|header=<span style="color:#FDF9D8">Resolved comments from \[\[User:Nmajdan\|{{color\|#FDF9D8\|NMajdan}}\]\])(\n\|)/gmi,'$1<\/span>$2');

  str = str.replace(/(\|)<font color=#00N510>(Ευπάτωρ)[<\/font>]*(\]\])/gi,'$1$2$3');

  str = str.replace(/(<small>\(\[\[User talk:Andy M\. Wang\|talk\]\]&nbsp;·&nbsp;\[\[Special:Contributions\/Andy M\. Wang\|contrib\]\]\))(\'\'\')(<\/small>)/gi,'$1$3$2');

  str = str.replace(/(<sub>Fox)(\'\'\'\]\])(<\/sub>)/gi,'$1$3$2');

  str = str.replace(/(> \'\'\'\[\[User:DreamFieldArts\|<span style="color:#009ACD">DreamField<\/span><span style="color:#8B6508">Arts)\'\'(<\/span>\]\]\'\'\'<\/span>)/gi,'$1$2');
  str = str.replace(/(> \'\'\'\[\[User:DreamFieldArts\|<span style="color:#009ACD">Dream<\/span><span style="color:#009ACD">Field<\/span><span style="color:#8B6508">Arts)\'\'(<\/span>\]\]\'\'\'<\/span>)/gi,'$1$2');

  str = str.replace(/(<span style="color:dodgerblue;">\'\'\'T\'\'\'<\/)font(>)/gi,'$1span$2');
  str = str.replace(/(<)font( color="blue">aggard<\/span>)/gi,'$1span$2');

  str = str.replace(/(<small><span style="text\-align:right;">This message [was delivered automatically]+ by your friendly neighborhood \[\[User:HostBot\|HostBot\]\] \(\[\[User talk:HostBot\|talk\]\]\) \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))(<\/small>)(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\'\'\'<sup>\(\[\[User talk:GoldRock23\|talk\]\] \- \[\[User:GoldRock23\|my page\]\] \- \[\[Special:Contributions\/GoldRock23\|contribs\]\]\) )(\'\'\')(<\/sup>)/gi,'$1$3$2');

  str = str.replace(/<font face="arial">\[\[user:Zaiger420\|\'\'\'<font color="#B40404">Zaiger\'\'\'\]\]<\/font><\/font>/gi, '<span style="font\-family:arial">\[\[user:Zaiger420\|<b style="color:#B40404">Zaiger</b>]\]<\/span>');

  str = str.replace(/(<span style="color:green;">)(\'\'\')(&#10004;<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\|<small>GEORGIANJORJADZE)(\]\])(<\/small>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:MaranoFan\|<span style="font\-family: Segoe Print;color:[a-z]+"> \'\'\'Marano\'\'\'<\/span>)\'\'(\]\])/gi,'$1$2');
  str = str.replace(/(\[\[Special:Contributions\/MaranoFan\|<b style="color:Purple">Stalking not allowed\.\.\.)(\]\]\))(<\/b>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Lips Are Movin\|<span style="font\-family: Segoe Print;color:deeppink"> \'\'\'Lips\'\'\'<\/span>)\'\'(\]\])/gi,'$1$2');

  str = str.replace(/\'\'\' \[\[User:Ajuk\|<font color=#Blue>AJUK<\/font>\]\] \'\'\'[<\/font>]*<sup><small>\[\[User_Talk:Ajuk\|<font color=#008800>Talk!!<\/font>\]\]<\/sup><\/small>/gi,'\'\'\' \[\[User:Ajuk\|<span style="color:blue">AJUK<\/span>\]\] \'\'\'<sup><small>\[\[User_Talk:Ajuk\|<span style="color:#008800">Talk!!<\/span>\]\]<\/small><\/sup>');
  str = str.replace(/<sup><small>\[\[User_Talk:Ajuk\|<font color=#008800>Talk!!<\/font>\]\]<\/sup><\/small>/gi,'<sup><small>\[\[User_Talk:Ajuk\|<span style="color:#008800">Talk!!<\/span>\]\]<\/small><\/sup>');
  str = str.replace(/\'\'\' \[\[User:Ajuk\|<font color=#Blue>AJUK<\/font>\]\] \'\'\'<\/font>/gi,'\'\'\' \[\[User:Ajuk\|<span style="color:blue">AJUK<\/span>\]\] \'\'\'');

  str = str.replace(/(<font color="red">Stars)(\'\'\'\'\'\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Flipandflopped\|\'\'\'<span style="color:purple;">Flipandflopped<\/span>)(\]\])/gi,'$1\'\'\'$2');

  str = str.replace(/(<u>\'\'\'\[\[Wikipedia:Editor review\/Richard0612\|ER\]\])(<\/u>)/gi,'$1\'\'\'$2');

  str = str.replace(/(<sup><u>\'\'\'\[\[WP:UW\|UW\]\])(<\/u><\/sup>)/gi,'$1\'\'\'$2');

  str = str.replace(/(<font color="Blue"><span style="font\-family: Arial"> \'\'\'\'\'Cheers,\[\[User:JetLover\|Je\]\]\[\[User talk:JetLover\|t\]\]\[\[Special:Contributions\/JetLover\|Lover\]\])(<\/span>)(\'\'\'\'\')(<\/font>)/gi,'$1$3$2$4');

  // For Wikihermit:
  str = str.replace(/(<span style="font\-family:Trebuchet MS">)\'\'(<font color="#777">\'\'~\'\'<\/font>\'\'\')\'\'(&nbsp;)/gi,'$1$2$3');

  str = str.replace(/(<sup>\[\[User talk:Moeron\|\'\'\'<span style="color:red;">\'\'Let\'s talk\'\'<\/span>\'\'\'\]\] )\|( \[\[Special:Contributions\/Moeron\|\'\'\'<span style="color:green;">\'\'done\'\'<\/span>)(\]\]<\/sup>)/gi,'$1&#124;$2\'\'\'$3');

  str = str.replace(/(\|<span style="background\-color:#6699FF)"><font="center" color="(#FFFFFF">&nbsp;[a-z]*<b>Keith[&nbsp;<\/b>a-z]+)<\/font>(<\/span>\])/gi,'$1; color:$2$3');

  str = str.replace(/(<b><font face="Verdana,Arial,Helvetica"><span style="color:steelblue;">CO<\/span><sub>\[\[user_talk:CO\|<span style="color:steelblue;">2<\/span>\]\]<\/sub>)(<\/b>)(<\/font>)/gi,'$1$3$2');

  str = str.replace(/<tt>\[\[<\/tt>(\'\'\'\[\[User:Animum\|<.+Animum<\/.+>\]\]\'\'\'&nbsp;)\|(&nbsp;\'\'\'+\[\[User[_ ]talk:Animum\|<.+>talk<\/.+>\]\]\'\'\'+)<tt>\]\]<\/tt>/gi,'<kbd>&#91;&#91;<\/kbd>$1&#124;$2<kbd>&#93;&#93;<\/kbd>');

  str = str.replace(/( \[\[User:Theclerkswell\|Clerkenwell\]\] \'\'\[\[User_talk:TheClerksWell\|TALK PAGE\!\]\])\"*( )/gi,'$1\'\'$2');

  str = str.replace(/<font color="660000">&mdash;<\/font>\'\'\'\[\[User:DomBot\|<font color="FF6600">DomBot\]\]\'\'\'&nbsp;<\/font><font color="660000">\/<\/font>&nbsp;\'\'\'\[\[User:Chidom\|<span style="color:#FF6600;">ChiDom<\/span>\]\]&nbsp;<sup>\[\[User talk:Chidom\|<span style="color:#660000;">talk<\/span>\]\]\'\'\'<\/sup>/gi,'<span style="color:#660000;">&mdash;<\/span>\'\'\'\[\[User:DomBot\|<span style="color:#FF6600;">DomBot<\/span>\]\]\'\'\'&nbsp;<span style="color:#660000;">\/<\/span>&nbsp;\'\'\'\[\[User:Chidom\|<span style="color:#FF6600;">ChiDom<\/span>\]\]&nbsp;<sup>\[\[User talk:Chidom\|<span style="color:#660000;">talk<\/span>\]\]<\/sup>\'\'\'');

  str = str.replace(/(>\(\'"HURRRR\?)\'(\'\)<)/gi,'$1"$2');

  str = str.replace(/(\|<span style="color:#337533">Talk)(\]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\|<span style="color:#E00C0C">Talk)(\]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\|<span style="color:#E00C0C"><B>Erik[a-z ]+<\/B>)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\'\'Sky full of fireworks,<br>)(\n\'\'Mouth full of sweets,<br>)(\n\'\'Home full of lamps,<br>)(\n\'\'And festival full of sweet memories\.\.\.<br>)(\n+\'\'\'\'\'Wishing You a Very [a-z ,]+ \[\[Diwali\]\]\.<br>)(\n)/gmi,'$1\'\'$2\'\'$3\'\'$4\'\'$5\'\'\'\'\'$6');

  str = str.replace(/(<small>)<center>(Sent by \[\[User:Northamerica100[\|Northamerica1000]+]] .* \(UTC\)}*)<\/center>(<\/small>)/gi,'{{center\|1=$1$2$3}}');
  str = str.replace(/(<small>)<center>(Sent by \[\[User:Northamerica100[\|Northamerica1000]+]] .* [sendermessaging]+]]\.*)<\/center>(<\/small>)/gi,'{{center\|1=$1$2$3}}');


  str = str.replace(/(\[\[User:Esskater11\|)(<[fontspan]+ style="color:#[\dA-F]+;background:#[\dA-F]+;">)(\'\'\')(Esskater<\/[fontspan]+><[fontspan]+ style="color:#[\dA-F]+;background:#[\dA-F]+;">11)(\'\'\')(<\/[fontspan]+>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(! {{#switch:\{\{\{1}}}\|accept=style="background\-color:#A0FFA0"\|mm=style=" background\-color:#00AFFF"\|#default=style="background\-color:#ffcece"}} \| {{#ifeq:\{\{\{1}}}\|accept\|:\[\[Image:Symbol support vote.svg\|created\|14px\]\]\|:\[\[Image:Symbol oppose vote.svg\|declined\|14px\]\]}}{{#ifeq:\{\{\{1}}}\|mm\|\[\[Image:Symbol oppose vote\.svg\|created\|14px\]\]\|}} One or more Articles For Creation have been reviewed\.  Archived discussion follows below\. <span style="color:red;">\'\'\'Please do not modify it\.\'\'\'<\/span>)\'\'/gi,'$1');

  str = str.replace(/(\[\[User:Spittlespat\|)(<span style="color:darkblue;font\-family:comic sans ms;cursor:help">)(\'\'\')(Spittle<\/span><span style="color:dodgerblue;font\-family:comic sans ms;cursor:help">spat!)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(\|A \[\[Wikipedia:Requests for mediation\|Request for Mediation\]\] to which you were are a party [a-z ]+ \[\[Wikipedia:Requests for mediation\/[a-z #\-]+\|[not ]*accepted\]\][a-z ]*.<br>You can find more information on the case subpage, \[\[Wikipedia:Requests for mediation\/.*\]\]\.)<\/center>/gi,'$1');

  str = str.replace(/<center>\n(This page is an archive and its contents should be preserved in their current form;<br>\nany comments regarding this page should be directed to \[\[Wikipedia talk:In the news\]\]\. Thanks\.)\n<\/center>/gmi,'{{center\|1=$1}}');

  str = str.replace(/(\[\[User:Luxure\|)(<span style="color:#E22;">)(\'\'\')(Lux<\/span><span style="color:#F73">ure)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(\|<)font color="(#FFA000">Sυρєrıor)(\]\])<\/font>/gi,'$1span style="color:$2</span>$3');

  str = str.replace(/(\|<span style="background\-color:black; color:gold;">Oz&nbsp;)(\]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(>&nbsp; CJ <nowiki>\[a Kiwi\]<\/nowiki> \'\'in\'\' &nbsp;)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:RobNS\|)(<b>)(<font color="green">\'\'Rob\'\'<\/font>\]\]\[\[User talk:RobNS\|<font color="blue">\'\'NS\'\'<\/font>)(<\/b>)(\]\])/gi,'$2$1$3$5$4');

  str = str.replace(/<center>(<big>\'\'\'Happy 10th anniversary of Wikipedia!\'\'\'<\/big>)<\/center>/gi,'{{center\|1=$1}}');

  str = str.replace(/(\[\[User:Doh5678\|)(<big>)(\'\'\')(D<\/big>oh5678\'\'\'\]\])/gi,'$1$3$2$4');

  str = str.replace(/<font( style="color:green"><small><sup>talk<\/sup><\/small><\/)font>/gi,'<span$1span>');

  str = str.replace(/(\[\[User talk:Gourami Watcher\|<font color=#0038A8><sup>\'\'\'+Talk\'\'\'+<\/sup>)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(\[\[Wikipedia:Esperanza|<font style="color:green">\'\'\'\'\'e\'\'\'\'\')(\]\]\[\[User:Denni\|nni\]\] )(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(Ingoolemo\|)(<font color=blue>)(<sup>)(talk<\/font><\/sup>\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User talk:BD2412\/deletion debates\|<sup><span style="color:Blue;"><b>talk<\/b><\/span>)(\]\]) /gi,'$1<\/sup>$2');

  str = str.replace(/(<sup>)<font size="\-2">(\[\[User talk:AndreasJS\|\(T\)\]\])<\/font>(<\/sup>)/gi,'$1$2$3');

  str = str.replace(/(<sup>\[\[User talk:Pastordavid\|†\]\])(\'\'\' )(<\/sup>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Caballero1967\|<span style="color:#[A-F\d]+;font\-family: Herculanum">)(\'\'\')(Caballero<span style="color:#[A-F\d]+;">\/<\/span><\/span><span style="color:#[A-F\d]+;font\-family:Lucida Blackletter">Historiador<\/span>\]\]<sup>\[\[User_talk:Caballero1967 \|<u> ⎌<\/u>)(\'\'\')(\]\]<\/sup>)/gi,'$2$1$3$5$4');
  str = str.replace(/(\[\[User:Caballero1967\|<span style="color:#[A-F\d]+;font\-family: Herculanum">)(\'\'\')(Caballero<font color="#[A-F\d]+;*">\/<\/font><\/span><span style="color:#[A-F\d]+;font\-family:Lucida Blackletter">Historiador<\/span>\]\]<sup>\[\[User[ _]talk:Caballero1967 *\|<u> ⎌<\/u>)(\'\'\')(\]\]<\/sup>)/gi,'$2$1$3$5$4');
 

  str = str.replace(/(\'\'\'\[\[User:Sukh17\|<span style.* <sup><font color="#436EEE" face="Arial" size="0">\[\[User talk:Sukh17\|.*\]\]<\/font><\/sup>\'\'\')<\/sup><\/font><\/span>/gi,'$1');

  str = str.replace(/(\'\'\'\[\[User:Class455fan1\|Class455fan1\]\] \(\[\[User talk:Class455fan1\|talk\]\]\))( [012])/gi,'$1\'\'\'$2');

  str = str.replace(/(<span style="font\-size:190%;">FlyingToaster Barnstar<\/span><br>)<\/span>(<span style="font\-size:110%;">\n<br>Hello [a-z \d]+!  Thank you so much for your support in my .* with a tally of 126.*  I am truly humbled by the trust you placed in me, and will endeavor to live up to that trust\. \'\'\'\[\[User:FlyingToaster\|<span style="color: #0036FF">Flying<\/span>\]\]\[\[User talk:FlyingToaster\|<span style="color: #E41A1A">Toaster<\/span>\]\]\'\'\')(\n)/gmi,'$1$2<\/span>$3');

  str = str.replace(/<FONT STYLE="verdana" COLOR="#000000">Dei<\/FONT>/gi,'<span style="font-family:verdana; color:#000000">Dei<\/span>');

  str = str.replace(/<font color="#000">([\(❝❞\)]+)<\/font>/gi,'<span style="color"#000000">$1<\/span>'); //User:Hex

  str = str.replace(/(\'\'\[\[User:JavaHurricane\| <span style = "color:green">Java<\/span>\]\]\[\[User talk:JavaHurricane\|<span style = "color:red">Hurricane<\/span>\]\])( [012])/gi,'$1\'\'$2');

  str = str.replace(/<center>(<span style="font\-family: Arial;) font\-size: 12pt(">)<font size="18">(WikiProject India)<\/center><\/font>(<\/span>)/gi,'{{center\|1=$1 font\-size:xxx\-large;$2$3$4}}');

  str = str.replace(/(<span style="font-family:Verdana">Hello[^\/]+adminship\/Magog the Ogre 2\|my RfA[^\/]+65\/4\/3[^\/]+ feel free to message me if I'm around\.)(\n<\/div>)/gmi,'$1<\/span>$2');

  str = str.replace(/(\|<span style="color:maroon">\'\'\'Communicate)(<\/span>)(\'\'\')(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\(\'\'\')(\[\[User talk:TaerkastUA\|<span style="color:maroon">)(\'\'\')(Communicate<\/span>\]\]\'\'\'\))/gi,'$1$3$2$4');
  str = str.replace(/(\(\[\[User talk:TaerkastUA\|<span style="color:maroon">\'\'\'Communicate)(<\/span>\]\])(\'\'\')(\))/gi,'$1$3$2$4');


  str = str.replace(/(Raccoon_*Fox\|\'\'\'Stalk\'\'\'\]\])\'\'\'(<\/span>)/gi,'$1$2');
  str = str.replace(/(RingtailedFox\|\'\'\'Stalk\'\'\'\]\])\'\'\'(<\/span>)/gi,'$1$2');

  str = str.replace(/(\[\[User talk:jamesooders\|\'\'\'<span style="color:blue;background:yellow">ööders)(\'\')(<\/span>)(\]\])/gi,'$1$3$2\'$4');

  str = str.replace(/(>\[\[User:Richerman\|<span style="color:green;">Richerman<\/span>)\'\'(\]\]<)/gi,'$1$2');

  str = str.replace(/\'\'\'(<font color="white">\'\'\'Happy Christmas, [a-z\d ]+\.\'\'\'<\/font>)<span style="color"><\/span>\'\'\'/gi,'$1');
  str = str.replace(/\'\'\'(<span style="color:white;">\'\'\'Happy Christmas, [a-z\d ]+\.\'\'\'<\/span>)\'\'\'/gi,'$1');

  str = str.replace(/(<font color="red">\'\'\'<font size=4>\'\'[a-z \'’]+, {{BASEPAGENAME}}!\'\'<\/font><br \/> [a-z ,\'\.’!]+May [a-z ,\'\.’!]+[\.!])( \[\[User:[onel5969MarnetteD]+)/gi,'$1\'\'\'<\/font>$2');

  str = str.replace(/(\|)(<strong><span style="color:Black;">)(\'\')(Jus<\/span><span style="color:Red;">tin)(\'\')(<\/span><\/strong>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(\[\[User:JianhuiMobile\|\'\'\'<span style="color:green;">JianhuiMobile<\/span>)(\]\])/gi,'$1\'\'\'$2');
  str = str.replace(/(\[\[User:Jianhui67\|\'\'\'<span style="color:green;">Jianhui67<\/span>)(\]\])/gi,'$1\'\'\'$2');

  str = str.replace(/(\'\'\'<)font( style="white\-space:nowrap;text\-shadow:green 0em 0em 0.8em,red \-0.8em \-0.8em 0.9em,blue 0.7em 0.7em 0.8em;color:#000000"><big><span style="color:green">[{{CURRENTYEAR}}\d]+<\/span><\/big>)(\'\'\')<\/font>/gi,'$1span$2<\/span>$3');
  str = str.replace(/(\'\'\'<span style="white\-space:nowrap;text\-shadow:green 0em 0em 0.8em,red \-0.8em \-0.8em 0.9em,blue 0.7em 0.7em 0.8em;color:#000000"><big><span style="color:green">{{CURRENTYEAR}}<\/span><\/big>)(\'\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(:<div style="float:left">\'\'{{resize\|88%\|Send New Year cheer by adding {{tls\|Happy New Year fireworks}} to user talk pages\.}}\'\')(\n)/gmi,'$1<\/div>$2');

  str = str.replace(/(<big><big><big><big><big>\'\'\'The 12 Days of Wikipedia)(<\/big><\/big><\/big><\/big><\/big>)(\'\'\')/gi,'$1$3$2');

  str = str.replace(/(\[\[User talk:Bevinbell\|\'\'\'<span style="color:darkRed">bell)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(>\(❝)(\'\'\')(<\/font>)(<)/gi,'$1$3$2$4');

  str = str.replace(/(\|\'\'\'<span style="color:[ #a-z\d;]+">rije<\/span>)(\]\])/gi,'$1\'\'\'$2');

  str = str.replace(/(>\'\'\'Patient\'\')\'\'\'\'\'\'(Zero\'\'\'\'\'<)/gi,'$1$2');

  str = str.replace(/(<font face="Arial">\-\- \'\'\'\[\[User:Heligoland\|<font color="blue">Heligo<\/font>\]\]\[\[User_talk:Heligoland\|<font color="red">land<\/font>\]\])(<\/font>)(\'\'\')/gi,'$1$3$2');

  str = str.replace(/(<font color)("green">e<\/font>)/gi,'$1=$2');

  str = str.replace(/(\[\[User_talk:Harry the Dirty Dog|<sup)><font color="(#000099">Let us have speaks)(\]\])<\/font>(<\/sup>)/gi,'$1 style="color:$2$4$3');

  str = str.replace(/(<)font\-family:"Tahoma"(>\[\[User:Steelerfan\-94\|.*\]\]<\/)font(>\'\'\'\'\')/gi,'$1span style="font\-family:Tahoma"$2span$3');

  str = str.replace(/(<small><sup>Need help\? \'\'\'<nowiki>{{ping\|HighInBC}}<\/nowiki>)(<\/small>)(<\/sup>)(\'\'\')/gi,'$1$4$3$2');

  str = str.replace(/(>ψλ)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(Eleland\|<b><span style="color:#005080;">edits<\/span>)(\]\])(<\/b>)/gi,'$1$3$2');

  str = str.replace(/\'\'\'(<font color="green">\'\'\'Happy Holidays {{PAGENAME}}\.\'\'\'<\/font>)<span style="color"><\/span>\'\'\'(<br \/>\n<font color="green">\'\'\'Have a Happy New Year !)<\/sup>\n<br \/>(<\/font>\n\|}\n<sup><span style="color:#bfbfff">\'\'\'\[\[user:[a-z]+\|[a-z]+ *:\)\]\]\'\'\'<\/span>)( \'\'\'<sup>\(\[\[user_talk:[a-z]+\|T\]\]\/\[\[Special:Contributions\/[a-z]+\|C\]\]\)<\/sup>)\n/gmi,'$1$2\'\'\'$3<\/sup>$4\'\'\'\n');

  str = str.replace(/\'\'\'(<font color="green">\'\'\'Happy Holidays {{PAGENAME}}\.\'\'\'<\/font>)\'\'\'(<br \/>\n<font color="green">\'\'\'Have a Happy New Year !)<\/sup>\n<br \/>(<\/font>\n\|}\n<sup><span style="color:#bfbfff">\'\'\'\[\[user:[a-z]+\|[a-z]+ *:\)\]\]\'\'\'<\/span>)( \'\'\'<sup>\(\[\[user_talk:[a-z]+\|T\]\]\/\[\[Special:Contributions\/[a-z]+\|C\]\]\)<\/sup>)\n/gmi,'$1$2\'\'\'$3<\/sup>$4\'\'\'\n');

  str = str.replace(/\'\'\'(<font color="white">\'\'\'Happy New Year, {{PAGENAME}}\.\'\'\'<\/font>)<span style="color"><\/span>\'\'\'(<br \/>)/gmi,'$1$2');


  str = str.replace(/(\.\'\' <!\-\- Template:FRS message \-\->— <!\-\- FRS id \d+ \-\-> \[\[User:RFC&#32;bot\|RFC&#32;bot\]\] \(\[\[User talk:RFC&#32;bot\|talk\]\]\) \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))(\n)/gmi,'$1\'\'$2');

  str = str.replace(/(<s)trike( style="color: #ad0000">)/gi,'$1$2');

  str = str.replace(/( \'\'\'\[\[User:Addshore\|<span style="color:#FF4000;">·Add§hore·<\/span>\]\]\'\'\' <sup>\[\[User_talk:Addshore\|<span style="color:#FF4000;">T<small>alk<\/small> T<small>o<\/small> M<small>e<\/small>!<\/span>\]\]<\/sup>)<\/span> /gi,'$1');

  str = str.replace(/(\[\[User talk:Ата\|)\'\'\'(<span style="color:#80A0FF">\'\'\'\(talk\)\'\'\'<\/span>)\'\'\'(\]\])/gi,'$1$2$3');

  str = str.replace(/(\[\[User:ZiaLater\|<span style="text\-shadow:#C0C0C0 0\.2em 0\.2em 0\.2em"><span style="color: ForestGreen">\'\'ZiaLater\'\'<\/span>)(\]\] \(\[\[User talk:ZiaLater\|<span style="color: ForestGreen">talk<\/span>)(<\/span>)(\]\]\))/gi,'$1$3$2$4');

  str = str.replace(/(<small>)<center>(This message delivered by \[\[User:MediationBot\|MediationBot\]\], an automated bot account operated by the \[\[WP:MC\|Mediation Committee\]\] to perform case management\. If you have questions about this bot, please \[\[WT:MC\|contact the Mediation Committee directly\]\]\.)<\/center>(<\/small>)/gi,'{{center|1=$1$2$3}}');

  str = str.replace(/(<sup>\[\[User_talk:\^demon\|<span style="color:red">\[omg plz\]<\/span>\]\])(\n)/gmi,'$1<\/sup>$2');

  str = str.replace(/(<span style="font\-family: Comic Sans MS;"> — \[\[User:CG890100\|<span style="color: [#a-z\d]+;">\'\'\'\'\'ComputerGuy89010\'\'\'\'\')(\]\]\[\[User:ComputerGuy890100\/Secretpage\|\'\'\'\'\'0\'\'\'\'\'\]\]<\/span>)(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<small>\'\'edits!*\')(<\/small>)/gi,'$1\'$2');

  str = str.replace(/(\|<span style="background:#006400; size:2; color:#DCDCDC;"> \'\'Em\-jay\-es)(<\/span>\]\])/gi,'$1\'\'$2');

  str = str.replace(/(<sup>\[\[User talk:ROFLcopter\|Talk to ROFLcopter, kthx)(<\/sup>)(\]\])/gi,'$1$3$2');

  str = str.replace(/(\|<span style="color:#00008B;">Northern<\/span> \'\'<span style="color:#FFA500;">Antarctica<\/span>)(\]\])(\'\')/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Nirajrm\|Nirajrm\]\] )<font color = "blue">(<sup>\'\'\[\[User talk:Nirajrm\|talk\]\] )\|\|\|( \[\[User:Nirajrm\/Signhere\|\'\'\'sign plz!\'\'\'\]\]\'\'<\/sup>)<\/font>/gi,'$1<span style="color:blue">$2&#124;&#124;&#124;$3<\/span>');

  str = str.replace(/(\[\[User:Nintendude64\|)\'\'\'(<span style="color:#000099; *font\-family:Arial Black;">NINTENDUDE<\/span>\]\]\[\[User_talk:Nintendude64\|<sup><span style="color:#FF0000; *font\-size:small;">64<\/span><\/sup>)\'\'\'(\]\])/gi,'\'\'\'$1$2$3\'\'\'');

  str = str.replace(/(<span style="font: small\-caps 15px times;">\'\'\'\[\[User:KC Panchal\|<span style="color:#800080;">—Ketan<\/span><span style="color:#000000;">Panchal<\/span>\]\]<sup>\[\[User talk:KC Panchal\|<span style="color:#2F4F4F;">\'\'<small>t<\/small>aL<span style="font\-size:medium;">K<\/span>\'\'<\/span>\]\])(\'\'\')(<\/sup>)(<\/span>)/gi,'$1$3$2$4');

  str = str.replace(/\[\[User:Adasta\|<span style="font\-size:small; font\-family:Sylfaen;"><span style="color:#000000;"><b>\-<\/b><b>Ad<\/span><span style="color:#000000;"><b>a<\/span><span style="color:#455681;"><b>st<\/span><span style="color:#455681;"><b>a<\/span><b>\-<\/b>\]\]<\/span><\/strong>[<\/b>]+ /gi,'\[\[User:Adasta\|<span style="font\-size:small; font\-family:Sylfaen; color:#000000;"><b>\-<\/b><b>Ada<span style="color:#455681;">st<\/span><span style="color:#455681;">a\-<\/span><\/b><\/span>\]\] ');

  str = str.replace(/(\[\[User:Chad1m\|\'\'\'\'\'Chad1m)(\]\])/gi,'$1\'\'\'\'\'$2');

  str = str.replace(/(<small> \[\[User talk:Ccool2ax\|chat\]\])<small>( \[\[Special:Contributions\/Ccool2ax\|edits\]\]<\/small>)<\/small><\/font>/gi,'$1$2');

  str = str.replace(/(\[\[User:Greenmountainboy\|<span style="color:#008000;">Green<\/span>)\'\'( \]\]\[\[User_talk:greenmountainboy\|Mountain)\'\'(\]\])/gi,'$1$2$3');

  str = str.replace(/(\'\'\'\[\[User:King Prongs\|<span style="font\-family:Comic Sans MS ; color:gold;">Prongs<\/span>\]\] <sub>)\'\'\'(\(\[\[User Talk:King Prongs\|<span style="color:black;">Talk<\/span>\]\] •Bow To Me \))(\'\'\')(<\/sub>)/gi,'$1$2$4$3');

  str = str.replace(/(<i>\[\[User:Wimvandorst\|Wim van Dorst)\'\'(\]\] \(\[\[user talk:Wimvandorst\|\'\'Talk\'\'\]\]\)<\/i>)/gi,'$1$2');

  str = str.replace(/(<sup><small>\[\[User_talk:TheMidnighters\|\(talk\)\]\])<\/font>(<\/small><\/sup>)/gi,'$1$2');

  str = str.replace(/<\/font>(<small><span style="border: 1px solid #F06A0F">\[\[User:Morton_devonshire)/gi,'$1');

  str = str.replace(/\|<font color="([#a-z\d]+)"><sup>✉<\/sup><\/font>\]\]/gi,'\|<span style="color:$1"><sup>✉<\/sup><\/span>\]\]');

  str = str.replace(/(<\/b>)(\[\[User talk:Fallschirmjäger\|)(<\/i>)/gi,'$1$3$2');

  str = str.replace(/<font style="font\-family:Monotype Corsiva"><font color="black"><font size="4">Socrates2008 \(<font size=3>\[\[User talk:Socrates2008\|Talk\]\]<\/font>\)<\/font><\/font><\/font>/gi,'<span style="font\-family:Monotype Corsiva; color; black; font\-size:large">Socrates2008 \(<span style="font-size:medium">\[\[User talk:Socrates2008\|Talk\]\]<\/span>\)<\/span>');

  str = str.replace(/(<sup><small>\[\[User_talk:TheMidnighters\|\(talk\)\]\])<\/font>(<\/small><\/sup>)/gi,'$1$2');

  str = str.replace(/<font=3>/gi,'');

  str = str.replace(/\[\[User:Hotcrocodile\|<font face="Rockwell" style="color:#8B0000">\'\'\'Hot<\/font><font face="Rockwell" style="color:#006400">Crocodile\]\]<\/font>\[\[User talk:Hotcrocodile\|\.\.\.\.\.\. <font color="black" face="Wingdings">\+\]\]\'\'\'<\/font>/gi, '<span style="padding-left: 1em;">&nbsp;<\/span>\'\'\'&sup;&deg;\[\[User:Hotcrocodile\|<span style="font\-family:Rockwell; color:#8B0000">Hot<\/span><span style="font\-family:Rockwell; color:#006400">Crocodile<\/span>\]\]\'\'\'\[\[User talk:Hotcrocodile\|\.\.\.\.\.\. <span style="font\-family:Wingdings; color:black">\+<\/span>\]\]');

  str = str.replace(/(~\'\'\'\'\'\[\[User:Editorofthewiki\|<span style="color:#F90000;">EDDY<\/span>\]\]\'\' <sup>\(\[\[User talk:Editorofthewiki\|<span style="color:Green;">talk<\/span>\]\]\/\[\[Special:Contributions\/Editorofthewiki\|<span style="color:Green;">contribs<\/span>\]\]\)<\/sup>\'\'\')<\/span>(~)/gi,'$1$2');

  str = str.replace(/(>crassic)(\]\]\'\'\'<sup>\(*\[\[User_talk:Crassic\|talk\]\]\)*<\/sup>)(<\/span>)/gi,'$1$3$2');

  str = str.replace(/<font face="Verdana"><font color=#([a-f\d]+)>(\[\[User:Matthewedwards\|\'\'\'Matthew\'\'\'\]\]\[\[User talk:Matthewedwards\|edwards)<\/font>(\]\])<\/font>/gi,'<span style="font\-family:Verdana; color:#$1">$2$3<\/span>');

  str = str.replace(/(Comment on )\'\'(\[\[Wikipedia:Featured article candidates\/Dishonored\/archive1\|\'\'Dishonored\'\'\]\]\'s FA nom! )/gi,'$1$2');

  str = str.replace(/(\[\[User:CharonX\|Charon\]\]\[\[User:CharonX\/Userboxes\|<span style="color:Black;"><b>X<\/b><\/span>)\'\'(\]\]\/\[\[User talk:CharonX\|<i>talk<\/i>)\'\'(\]\] )/gi,'$1$2$3');

  str = str.replace(/(\|<span style="background:#[a-f\d]+;color:#EDEDED" vlink="color:#EDEDED">\'\'\'&nbsp;\'\'\'Ashot\'\'\'&nbsp;)(<\/span>\]\])(\'\'\')/gi,'$1$3$2');

  str = str.replace(/<tt> <\/tt>(\[\[User:Ryan Vesey)/gi,'$1');

  str = str.replace(/(\[\[User:Staffwaterboy\|<span style="color:red; cursor: *[a-z\-]+;"><b>Staffwaterboy<\/b>)(\]\] \[\[User_talk:Staffwaterboy\|<sup>Critique Me<\/sup>)(<\/span>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\[\[User:Staffwaterboy\|<span style="color:red; cursor: *[a-z\-]+;"><b>Staffwaterboy<\/b>)(\]\] \[\[User_talk:Staffwaterboy\|<sup>Critique Me<\/sup>)\]\]<sup><\/sup>(<\/span>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\[\[User:Staffwaterboy\|<span style="color:red; cursor: *[a-z\-]+;"><b>Staffwaterboy<\/b>)(\]\] \[\[User_talk:Staffwaterboy\|<sup>Critique Me<\/sup>\]\] \[\[User:Staffwaterboy\/guestbook\|<sup>Guestbook<\/sup>\]\] \[\[User:Staffwaterboy\/sandbox\|<sup>Hate Comments<\/sup>)(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\'\'\'\[\[User talk:Godgoddingham333|<span style="color:gold">333)(\]\]\'\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<span id="Jacklee" class="plainlinks">\[\[User:Jacklee\|<span style="color:#ce2029">Jack<\/span>\]\]\[\[User:Jacklee\|<span style="color:#800000">\'\'\'Lee\'\'\'<\/span>\]\] <sup>&ndash;\[\[User talk:Jacklee\|talk\]\]&ndash;)(<\/span>)(<\/sup> )/gi,'$1$3$2');

  str = str.replace(/( <sup>&ndash;\[\[User talk:Jacklee\|talk]]&ndash;)<\/span>(<\/sup> )/gi,'$1$2');

  str = str.replace(/(<span style="font: small\-caps 15px times;">\'\'\'\[\[User:KC Panchal\|<span style="color:#800080;">—Ketan<\/span><span style="color:#000000;">Panchal<\/span>\]\]<sup>\[\[User talk:KC Panchal\|<)font color="(#2F4F4F">\'\'<small>t<\/small>aL<span style="font-size:medium;">K<\/span>\'\'<\/)font(>\]\])(\'\'\')(<\/sup>)(<\/span> )/gi,'$1span style="color:$2span$3$5$4$6');
  str = str.replace(/(<span style="font: small\-caps 15px times;">\'\'\'\[\[User:KC Panchal\|<span style="color:#800080;">—Ketan<\/span><span style="color:#000000;">Panchal<\/span>\]\]<sup>\[\[User talk:KC Panchal\|<)font color="(#2F4F4F">\'\'<small>t<\/small>aL<big>K<\/big>\'\'<\/)font(>\]\])(\'\'\')(<\/sup>)(<\/span> )/gi,'$1span style="color:$2span$3$5$4$6');
  str = str.replace(/(<span style="font: small\-caps 15px times;">\'\'\'\[\[User:KC Panchal\|<span style="color:#800080;">—Ketan<\/span><span style="color:#000000;">Panchal<\/span>\]\]<sup>\[\[User talk:KC Panchal\|<span style="color:#2F4F4F;">\'\'<small>t<\/small>aL<span style="font-size:medium;">K<\/span>\'\'<\/span>\]\])(\'\'\')(<\/sup>)(<\/span> )/gi,'$1$3$2$4');
  str = str.replace(/(<span style="font: small\-caps 15px times;">\'\'\'\[\[User:KC Panchal\|<span style="color:#800080;">—Ketan<\/span><span style="color:#000000;">Panchal<\/span>\]\]<sup>\[\[User talk:KC Panchal\|<span style="color:#2F4F4F;">\'\'<small>t<\/small>aL<big>K<\/big>\'\'<\/span>\]\])(\'\'\')(<\/sup>)(<\/span> )/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User:Nowyouseeme\|<span style= "color:Black;background:#[a-z\d]+;">)(\'\'\')(Nowyouseeme<\/span>\]\]\[\[User talk:Nowyouseeme\|<span style="background:Black;color:#[a-z\d]+;">[a-z\d]+)(\'\'\')(<\/span>\]\])/gi,'$2$1$3$5$4');

  str = str.replace(/\'\'\'\[\[User:pd_THOR\|<span style="color:#CC0000;">pd_THOR<\/span>\]\]\'\'\' <sup>\|\'\'\' \[\[User_talk:pd_THOR\|=\/\\=\]\]<\/sup> \| /gi,'\'\'\'\[\[User:pd_THOR\|<span style="color:#CC0000;">pd_THOR<\/span>\]\]\'\'\' <sup>&#124;\'\'\' \[\[User_talk:pd_THOR\|=\/\\=\]\]\'\'\'<\/sup> &#124; ');

  str = str.replace(/(\|<span style="color:darkred;">\'\'Rayman\'\'<\/span><sup><span style="color:blue;">95<\/span>)(\]\])(<\/sup>)/gi,'$1$3$2');

  str = str.replace(/(<br><span style="font\-size: medium; color: black;">Best wishes for 2018,)( —\[\[User:PaleoNeonate)/gi,'$1<\/span>$2');

  str = str.replace(/(\[\[User:Jtdirl\|<span style="background\-color: orange)(">)<font ="center" color="(#006666)">(<b>Fear<i>ÉIREANN<\/i><\/b>)<\/font>(<\/span>\]\])/gi,'$1; color:$3;$2$4$5');

  str = str.replace(/(\-\-\[\[User:Nvvchar\| <span style="border:1px solid navy;padding:1px;"> <span style="color:#fef;background:	#191970;">\'\'\'\'\'N\.V\.V\. Char\'\'\'\'\'<\/span>)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/( \'\'\'\[\[User:Pyrrhus16\|<span style="color:black;">Pyrrhus<\/span>\]\]\'\'\'\[\[User talk:Pyrrhus16\|<span style="color:#FF0000;">16<\/span>\]\])\'\'\'/gi,'$1');

  str = str.replace(/(>oi<\/span><\/u>)(\]\])(<\/small>\'*)/gi,'$1$3$2');

  str = str.replace(/(\|<font color="grey" size="4px">Praxis Icosahedron)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/( \'\'\'\[\[User:Versace1608\|<span[^\']+>8<\/span>\]\] \'\'\')<\/font><\/big>/gi,'$1');

  str = str.replace(/(\[\[User:LethalFlower\|<span style="color:#46c6e2">\'\'\'Lethal\'\'\'<\/span><span style ="color:#14ad80">\'\'\'Flower\'\'\'<\/span>)\'\'(\]\])/gi,'$1$2');

  str = str.replace(/(\[\[User:Barneyboo\|<)font( style="background: #ff66ff)" (color)="(#ffffff"><b>Barney<\/b>boo)(\]\] \(\[\[User talk:Barneyboo\|Talk\]\]\))<\/font>/gi,'$1span$2; $3:$4<\/span>$5');

  str = str.replace(/(nemo\|<sup>[talkedits]+<)(sup>\]\])/gi,'$1\/$2');

  str = str.replace(/(\[\[User:Kaobear\|<font color="#cc0000">Kao<\/font><font color="silver">\'\'\'B)<font color="#ffffff">(\]\]\[\[Wikipedia:Esperanza\|e)<\/font>(\]\]\[\[User:Kaobear\|ar\]\])(\'\'\'<\/font>)/gi,'$1$4$2$3');

  str = str.replace(/(\'\'\'\[\[User:Cutest Penguin\|<span style="color:#D60047;">C<\/span><span style="color:#F0A000;">ute<\/span><span style="color:#00A300;">st<\/span><span style="color:#0A47FF;">Penguin<\/span>\]\] <small>\(\[\[User talk:Cutest Penguin\|Talk\]\]\)<\/small>)( )/gi,'$1\'\'\'$2');
  str = str.replace(/(\'\'\'  {\[\[User talk:Cutest Penguin\|talk\]\] • \[\[Special:Contributions\/Cutest Penguin\|contribs\]\]})( )/gi,'$1\'\'\'$2');

  str = str.replace(/(\[\[User:WebHamster\|\'\'\'<span style="color:#000000;">Web<\/span><span style="color:#ff0000;">H<\/span><span style="color:#000000;">amster<\/span>)(\]\])(\'\'\') /gi,'$1$3$2 ');

  str = str.replace(/( \[\[User:OlYeller21\|<span style="color:#827839;">Ol<span style="color:#FBB117;">Yeller<\/span><\/span>\]\]\'\'\'<sup>\[\[User_talk:OlYeller21\|<span style="color:#827839;">Talktome<\/span>\]\]<\/sup>)( )/gi,'$1\'\'\'$2');
  str = str.replace(/( \[\[User:OlYeller21\|<span style="color:#827839;">Ol<span style="color:#FBB117;">Yeller<\/span><\/span>\]\]\'\'\'<sup>\[\[User_talk:OlYeller21\|<span style="color:#827839;">Talktome<\/span>\]\]<\/sup>\'\'\' \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))\'\'\'/gi,'$1');

  str = str.replace(/(>\'\'U<sup>1<\/sup> <sub>q<\/sub>uattro)(<\/span>\]\])/gi,'$1\'\'$2');

  str = str.replace(/(\[\[User:Twobells\|Twobells)\'\'(\]\])/gi,'$1$2');

  //empty tt tags, part of signature
  str = str.replace(/<tt>  <\/tt>/gi,' ');

  //empty font tags, part of signature
  str = str.replace(/\|<font color="blue"><\/font>\]\]/gi,'\|<span style="color:blue"><\/span>\]\]');

  str = str.replace(/(\'\'\'\'\')(<span style="font\-family: Bookman Antiqua; font\-size: 12pt">)( \[\[User:Majestic_Pyre\|<span style="color:firebrick">Majestic Pyre<\/span>\]\]\'\'\'\'\'<sup>\[\[User_talk:Majestic_Pyre\|<span style="color:black">\'\'\'My Speech Bubble\'\'\')(\]\] <\/sup>)(<\/span>)(<\/span>)/gi,'$2$1$3$5$4$6');

  str = str.replace(/(\|<font style="background:#[\da-f]+;color:#[\da-f]+">\'\'\'KMFDM FAN\'\'\')(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/\[\[User:Flat Out\|\'\'\'<font color="blue">Flat Out<\/font>\]\]/gi, '\[\[User:Flat Out\|\'\'\'<span style="color:blue;">Flat Out<\/span>\'\'\'\]\]');
  str = str.replace(/\[\[User:Flat Out\|\'\'\'<font color="green">Flat Out<\/font>\]\]/gi, '\[\[User:Flat Out\|\'\'\'<span style="color:green;">Flat Out<\/span>\'\'\'\]\]');
  str = str.replace(/(\[\[User:Flat Out\|\'\'\'<span style="color:[bluegreen]+;">Flat Out<\/span>)(\]\])/gi,'$1\'\'\'$2');

  str = str.replace(/(<span style="background:lightblue)"><font face="Times New Roman"><font color="color:black">(\'*A•N•N•A\'*)<\/font><\/font>(<\/span>)/gi,'$1;font\-family:\'Times New Roman\';color:black;">$2$3');

  str = str.replace(/(>\'\'\'98=\'\'\')(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(>\'\'We keep what we kill\'\')(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<big><span style="color:red">G<\/span><span style="color:purple">R<\/span>)\'\'(<\/big>)/gi,'$1$2');

  str = str.replace(/(<span style="font\-family:Trebuchet MS">It\'s been a week[ a-z]* since \[\[Wikipedia:Requests for adminship\/Riana dzasta\|my recent request for adminship\]\] passed, and since I haven\'t managed to delete the Main Page \- yet \- I figure it\'s safe to send these out. Thanks a lot for participating in my RfA; I hope to do a good job. If you see me doing something wrong, need help, or just want to have a chat, please don't hesitate to drop by :\) &ndash;)( <span)/gi,'$1<\/span>$2');

  str = str.replace(/(\[\[User talk:Lightbluerain\|Talk\]\] )\|( \[\[Special:)/gi,'$1&#124;$2');

  str = str.replace(/(\|Dalejenkins\]\] )\|( <)/gi,'$1&#124;$2');

  str = str.replace(/(\[\[User:Sunborn\|)<\/b>(<font style="font\-weight:normal;color:grey;text\-decoration:none;">metta)(\]\])(<\/font>)/gi,'$1$2$4$3');

  str = str.replace(/(\[\[User talk:Ilovevancouver90909\|)\'\'\'(\(Talk\]\] • \[\[Special:Contributions\/Ilovevancouver90909\|My Contributions\))\'\'\'(\]\])/gi,'\'\'\'$1$2$3\'\'\'');

  str = str.replace(/(\/\/\[\[User:Roux\|<span style="color:#[0-9A-F]+;.*">\'\'\'roux\'\'\'<\/span>\]\] \[\[User talk:Roux\|<span .*">&nbsp;<\/span>\]\] \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi,'$1');

  str = str.replace(/(\|<font color=#000000>\'\'\'Lopez\'\'\')(\]\] )(<\/font>)/gi,'$1$3$2');
  str = str.replace(/<\/big>(<sup><small>\[\[Special:Contributions\/King_Lopez\|<span style="color:#FF0000;">\'\'\'Contribs\'\'\'<\/span>\]\])(<\/sup>)(<\/small>)/gi,'$1$3$2');
  str = str.replace(/<\/big>(<sup><small>\[\[Special:Contributions\/King_Lopez\|<span style="color:#FF0000;">\'\'\'Contribs\'\'\'<\/span>\]\]<\/small><\/sup>)/gi,'$1');
  str = str.replace(/(<sup><small>\[\[Special:Contributions\/King_Lopez\|<span style="color:#FF0000;">\'\'\'Contribs\'\'\'<\/span>\]\])(<\/sup>)(<\/small>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Neranei\|)(<span style="color:#50C878; font\-family: comic sans ms; font\-variant: small\-caps">)(\'\'\')(Ne<font color= "#03C03C">ra<font color= "#32CD32">n<\/font>e<\/font>i)(\'\'\')(<\/span>)(\]\] \[\[User talk:Neranei\|<span style="color:#228B22; font\-family: Ariel; font\-variant: small-caps">\(talk\))(\]\] )/gi,'$1$3$2$4$6$5$7<\/span>$8');
  str = str.replace(/(\[\[User:Neranei\|)(<span style="color:#50C878; font\-family: comic sans ms; font\-variant: small\-caps">)(\'\'\')(Ne<span style="color:#7FFF00;">ra<span style="color:#32CD32;">n<\/span>e<\/span>i)(\'\'\')(<\/span>)(\]\] \[\[User talk:Neranei\|<span style="color:#50C878; font-family: Ariel; font-variant: small-caps">\(talk\))(\]\] )/gi,'$1$3$2$4$6$5$7<\/span>$8'); 

  str = str.replace(/(\[\[User:Nerdfighter\|<font color=#088A08>nerd<\/font) color=#088A08(>\]\]\[\[User_Talk:Nerdfighter\|<font color=#0489B1>fighter<\/font) color=#0489B1(>\]\])/gi,'$1$2$3');
  str = str.replace(/(\[\[User:Rosscoolguy\|<font color=#FF6200>Ross<\/font) color=#FF6200(>\]\]\[\[User_Talk:Rosscoolguy\|<font color=#0101DF>coolguy<\/font) color=#0101DF(>\]\])/gi,'$1$2$3');
  str = str.replace(/(<big>\[\[User:Rosscoolguy\|<font color=#087503>\'\'\'R\'\'\'<\/font) color=#087503(>\]\]<\/big><sup>\[\[User_talk:Rosscoolguy\|<font color=#078F00>\'\'\'₵\'\'\'<\/font) color=#078F00(>\]\]<\/sup>)/gi,'$1$2$3');
  str = str.replace(/(\'\'\'\[\[User:Rosscoolguy\|<font color=#000000>ross<\/font) color=##000000(>\]\]\'\'\'<sup>\[\[User_talk:Rosscoolguy\|<font color=#08585E>\'\'\'\'\'coolguy\'\'\'\'\'<\/font) color=#08585E(>\]\]<\/sup>)/gi,'$1$2$3');

  str = str.replace(/(<big>I am now an admin!!!<\/big><)(big>)/gi,'$1\/$2');

  str = str.replace(/(<small>\'\'\'\[\[User:Carolmooredc\|Carolmooredc\]\]  \(\[\[User talk:Carolmooredc\|Talkie\-Talkie\]\]\))(<\/small>)(\'\'\')/gi,'$1$3$2');

  str = str.replace(/<b>(\'\' \'\'\'Kosh Vorlon)(\'\') (\'\'\'&nbsp;&nbsp;)<\/b>(<\/span>\]\])''/gi,'$1$3 $2$4');
  str = str.replace(/(\|<span style="font\-family:Segoe print; color:#CC4E5C;text\-shadow:gray 0.2em 0.2em 0.4em;">\'\'\'Kosh\'\'\')<span style="color:#228B22">(<\/span><span style="color:#008000">\'\'\'Vorlon\'\'\')<span style="color:#4D64A5">\'\'\'(<\/span>\]\])/gi,'$1$2$3');
  str = str.replace(/(<span style="color:#333;font\-face:Trebuchet MS;solid #FAECC8;background\-color:#FAF6ED;padding:2px 15px;letter\-spacing: 1px;"><sub>\[\[User:KoshVorlon\|Naluboutes, Nalubotes)(<\/sub>)(\]\])(<i>\[\[User:KoshVorlon\|<b><sup> Aeria gloris, Aeria gloris<\/sup><\/b>)<i>(<\/span>)(\]\]) /gi,'$1$3$2$4$6<\/i>$5');
  str = str.replace(/>\'\'\' \'\'KoshVorlon\'\'\' \'\'</gi,'>\'\'\' \'\'KoshVorlon\'\' \'\'\'<');

  str = str.replace(/<font( style="color:#22AA00;">)(\[\[User talk:Phaedriel\|)(tell me)(\]\])<\/font>/gi,'$2<span$1$3<\/span>$4');

  str = str.replace(/(\|<span style="color:darkblue;"><sup>\& listens)(<\/span>)(<\/sup>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\'\'\'\[\[User:NonsensicalSystem\|<span style="background\-color: blue; color: white">N0nsensical\'\'\.sys\'\'tem)(\]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\'\'\'\[\[User:NonsensicalSystem\|<span style="background\-color: blue; color: white">N0nsensical\'\'\.sys\'\'tem)(\]\]\'\'\')(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\'\'\'\[\[User:NonsensicalSystem\|<span style="background\-color: blue; color: white">N0nsensical\'\'\.sys\'\'tem)(\]\]\'\'\'<sup>\[\[User talk:NonsensicalSystem\|\(err\'\'0\'\'r\?\)\]\]<\/sup><sub>\[\[Special:Contributions\/NonsensicalSystem\|\(\.log\)\]\]<\/sub>)(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:L\'Aquatique\|<)font face="(Georgia"><span style="color:#[\da-f]+;">\'\'\'L\'Aq[uù]atique\'\'\'<\/span><\/)font(>\]\])<font color="#[\da-f]+">\[<font face="(Monotype Corsiva">\[\[[a-z \/\':]+Aquatique\|<span style="color:#[\da-f]+;">[a-z]+<\/span>\]\])<\/font>\]<\/font>[<\/font>]* /gi,'$1span style="font-family:$2span$3\[<span style="font-family:$4<\/span>\] ');
  str = str.replace(/(\[\[User:L\'Aquatique\|<span style="font\-family:Georgia;color:#000000;">\'\'\'L\'Aqùatique\'\'\'<\/span>)<\/span>(\]\])/gi,'$1$2');

  str = str.replace(/(\[\[User[ talk]*:Abelmoschus Esculentus#s\|<span style="color:darkblue">Abelmoschus )(<span style="color:green">Esculentus)(\]\] <sup>\[\[User talk:Abelmoschus Esculentus#s\|<span style="color:orange">talk)(\]\])/gi,'$1<\/span>$2<\/span>$3<\/span>$4');

  str = str.replace(/(\'\'<small>\[\[User talk:Freechild \|talk\]\])(\'\')(<\/small>)/gi,'$1$3$2');

  str = str.replace(/(>\'\'\'yousaf465\')(<\/span>\]\])/gi,'$1\'\'$2');

  str = str.replace(/(<sup>\'\'\[\[User talk:SSTflyer#top\|discuss\]\])(<\/sup>)(\'\')/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Mr\. Smart LION\|<span style="color:hsl\(205, 98%, 55%\);">\'\'\'Mr\.\'\'\'<\/span> <span style="color:#0070EE;">\'\'\'Smart\'\'\')(\]\])(<\/span>)( \[\[User_talk:Mr\. Smart LION\|<span style="font\-family: monospace;font\-weight: bold;font\-size: 18px;color:#101090;">LION)(\]\])(<\/span>)/gi,'$1$3$2$4$6$5');

  str = str.replace(/(\'\'\'\[\[User:sspecter\|<span style="padding : 0px 1px 1px 1px; border : 1px solid #809EF5; color: #77a2FF">SSPecter<\/span>\]\])( <small>)(\'\'\')(<sup>\[\[User_talk:sspecter\|Talk\]\]\|\[\[Special:Emailuser\/Sspecter\|E\-Mail\]\]<\/sup>)(\'\'\')(<\/small> )(<span style="color:red;">&#9670;<\/span>\'\'\')/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(\|<span style="color:#FF0000;"><small>\'\'\'News Team\'\'\'<\/small>)(<span style="color:#000;"><small>\'\'\' Assemble\!\'\'\'<\/small><\/span>\]\]\[\[User talk:NewsTeamAssemble\|<sup>\[talk\?\]<\/sup>)(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User:Adam1213\|<big><b>&#9786;<span style="color:#FF9900;">A<\/span>dam1213)<\/font>(\&#9786;)(<\/big>)(<\/b>)(\]\])/gi,'$1$2$4$3$5');
  str = str.replace(/(\[\[User:Adam1213\|<big><b>&#9786;<font color="#FF9900">A<\/font>dam1213)<\/font>(\&#9786;)(<\/big>)(<\/b>)(\]\])/gi,'$1$2$4$3$5');

  str = str.replace(/(<font color="#363636">\'\'\'Murat\'\'\')(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(<sup>\'\'<font face="Calibri" color="#660000">\[\[User talk:Ohmpandya\|We need to talk\.\.\.\]\] ♦ \[\[Special:Contributions\/Ohmpandya\|contribs\]\])(\'\')(<\/font>)(<\/sup>)/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User talk:Ssven2\|<sup><span style="font\-family: Times New Roman;color:#E30022">Speak 2 me<\/span>)\'\'(<\/sup>\]\])/gi,'$1$2');

  str = str.replace(/(>)(\'\'\')(<big>)(Zac\'\'\' <\/big>)/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User:OccultZone\|\'\'\'<span style="color:DarkBlue;">Occult<\/span><span style="color:blue;">Zone)(\'\'\'\]\] <small>\(\[\[User talk:OccultZone#Top\|Talk\]\] • \[\[Special:Contributions\/OccultZone\|Contributions\]\] • \[\[Special:Log\/OccultZone\|Log\]\]\)<\/small>)(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\|<font color=[a-z]+>Freewayguy)(\]\])/gi,'$1<\/font>$2');

  str = str.replace(/(<sub>\[\[Wikipedia:Editor review\/LAAFan 2\|review\]\])(\'\')(<\/sub>)/gi,'$1$3$2');
  str = str.replace(/(\'\'<sup>\[\[User:LAAFan\/Guestbook\|sign\]\]<\/sup> <sub>\[\[User:LAAFan\/Editor review \(LAAFan\) \|review\]\])(\'\')(<\/sub>)/gi,'$1$3$2');
  str = str.replace(/([;\- ]\[\[User:LAAFan\|<span style="color:[a-z]+; font\-family:Times New Roman;">LAA<\/span>\]\]\[\[User talk:LAAFan\|<span style="color:black; font\-family:Times New Roman;">Fan<\/span>\]\])\'\'( )/gi,'$1$2');

  str = str.replace(/( \[\[User:MaranoFan\|<span style="font\-family: DokChampa Print;color:brown"> \'\'\'MaRAno\'\'\'<\/span>)(\'\')(\]\])/gi,'$1$3');

  str = str.replace(/(\|<span style="font\-family:[a-z ]+;color:[#a-z\d ]+"> \'\'\'AB01\'\'\'<\/span>)\'\'(\]\])/gi,'$1$2');
  str = str.replace(/(\|<span style="color:[#a-z\d ]+;">\'\'\'AB01\'\'\'<\/span>)\'\'(\]\])/gi,'$1$2');

  // misnested font tag in signature with a color in it
  str = str.replace(/(\|<font color="[#a-z\d ]+">[a-z \d\'\)\(]+)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(<span style="font\-family:Calibri;">)(\'\'\')(\[\[User:K. Annoyomous\|<span style="color:#[a-z\d]+">K. *Annoyomous<\/span>\]\] \[\[User talk:K. Annoyomous\|<span style="color:#[a-z\d]+">\(talk\)<\/span>\]\]<\/span>\'\'\')/gi,'$2$1$3');
  str = str.replace(/(<font face="Comic Sans MS"> \'\'\'\[\[User:K. Annoyomous24\|<span style="color:#[a-z\d]+">K. Annoyomous<\/span>\]\]\[\[User talk:K. Annoyomous24\|<span style="color:#5C2F83">24<\/span>\]\])(<\/font>)(\'\'\')/gi,'$1$3$2');
  str = str.replace(/(<font face="Calibri">)(\'\'\')(\[\[User:K. Annoyomous\|<span style="color:#[a-z\d]+">K. *Annoyomous<\/span>\]\] \[\[User talk:K. Annoyomous\|<span style="color:#[a-z\d]+">\(talk\)<\/span>\]\]<\/font>\'\'\')/gi,'$2$1$3');

  str = str.replace(/(<span style="font\-family:Mistral;">)(\'\'\')(\[\[\[\[User:SRE.K.A.L.24\|<span style="color:#FCB926">SRE.K.A.L.<\/span>\]\])\|(\[\[User talk:SRE.K.A.L.24\|<span style="color:#5C2F83">L.A.K.ERS<\/span>\]\]\]\]<\/span>[a-z<>\/ ]*\'\'\')/gi,'$2$1$3&#124;$4');
  str = str.replace(/<font face="(Mistral">)(\'\'\')(\[\[\[\[User:SRE.K.A.L.24\|<span style="color:#FCB926">SRE.K.A.L.<\/span>\]\])\|(\[\[User talk:SRE.K.A.L.24\|<span style="color:#5C2F83">L.A.K.ERS<\/span>\]\]\]\])<\/font>([a-z<>\/ ]*\'\'\')/gi,'$2<span style="font\-family:"$1$3&#124;$4<\/span>$5');

  str = str.replace(/(\[\[User:Anas Salloum\|)(<font color="Black">)(\'\'\')(A<\/font><font color="Grey">nas)(\'\'\')(<\/font>)(\]\])/gi,'$1$3$2$4$6$5$7');
  str = str.replace(/(\[\[User:Anas Salloum\|)(<font color="Black">)(\'\'\')(\'\'A\'\'n<\/font><font color="[#\da-z;]+">as)(\'\'\')(<\/font>)(\]\])/gi,'$1$3$2$4$6$5$7');
  str = str.replace(/(\[\[User:Anas Salloum\|)(<span style="color:Black;">)(\'\'\')(\'\'A\'\'n<\/span><span style="color:Grey;">as)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');
  str = str.replace(/(\[\[User:Anas Salloum\|<font color="SteelBlue">\'\'\'\'\'A\'\'\'\'\'<small>NAS<\/small>)\'\'\'(<\/font>\]\])/gi,'$1$2');
  str = str.replace(/(\[\[User:Anas Salloum\|)(<span style="color:Black;">)(\'\'\')(\'\'A\'\'n<\/span><span style="color:#808080;">as)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(\'\'\'<span style="font\-size:small;">\[\[User:Wadester16\|<span style="color:[a-z]+">ωαdεstεr<\/span><span style="color:[a-z\d#]+">16<\/span>\]\])(\'\'\')(<\/span>)/gi,'$1$3$2');
  str = str.replace(/\'\'\'<font size="[smal2]+">(\[\[User:Wadester16\|<span style="color:[a-z]+">ωαdεstεr<\/span><span style="color:[a-z\d#]+">16<\/span>\]\])\'\'\'<\/font>/gi,'<b style="font\-size:small;">$1<\/b>');

  str = str.replace(/(\[\[User:Dinoguy1000\|<span style=color:#00f>[ダイノディノ]+)(<span style=color:#080>[ガイ奴]+)(\]\]\[\[Special:Contributions\/Dinoguy1000\|<span style=color:#F90>千?!)(\]\])/gi,'$1</span>$2</span>$3</span>$4');
  str = str.replace(/(Dinoguy1000[<\/small>]*\]\]<\/sup><\/span>)<\/span>/gi,'$1');

  str = str.replace(/(<sup>\(\[\[User talk:Seraphim System\|<span style="color:#009900">talk)(\]\]\))(<\/span>)(<\/sup>)/gi,'$1$3$2$4');
  str = str.replace(/(\[\[User talk:Anaruna\|<span style="color:#009900">talk)(\]\]\))(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\|<span style="background:#5d9731; color:white; padding:2px;">Sounder<\/)font(>\]\])/gi,'$1span$2');

  str = str.replace(/(<sup>\'\'\'\[\[User Talk:NG39\|<span style="color:red;">Talk<\/span>\]\])(<\/sup>)(\'\'\')/gi,'$1$3$2');

  str = str.replace(/(\|<span style="font\-family:Arial;color:#007BA7">talk)(\]\]\'\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(Comment on )\'\'(\[\[Wikipedia:Featured article candidates\/Dredd\/archive1\|\'\'Dredd\'\'\]\]\'s FA nom!)/gi,'$1$2');

  str = str.replace(/(\|[<sup>]*<span style="[a-z\-: ;]*color: *#FF00FF">\([speakto mbhrd]+\))(\]\])(<\/span>[<\/sup>]*)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Avocato\|<font color="#0645ad">\'\'\'Avocato\'\'\')(\]\]<\/span> )<font face="Tahoma" size="1">(\[\[User talk:Avocato\|<font color="#fb139e">\'\'\'\(talk\)\'\'\')(\]\])(<\/font>)<\/font>/gi,'$1<\/font>$2<small style="font\-family:Tahoma">$3$5$4<\/small>');

  str = str.replace(/\[\[User:Finn Casey\|<span style="font\-variant:small\-caps"><font color=" #660033"><b>Finn Casey(\]\]&nbsp;\[\[User talk:Finn Casey\|\*\]\]&nbsp;\[\[User:Finn Casey\/adminship\|\*\]\]&nbsp;\[\[User:Finn Casey\/appreciation\|\*\]\])<\/b><\/font><\/span>/gi,'\[\[User:Finn Casey\|<b style="font\-variant:small\-caps; color:#660033">Finn Casey<\/b>$1');

  str = str.replace(/(; \'\'What would you like to change about that\? *)(\n)/gmi,'$1\'\'$2');

  str = str.replace(/<font=3> (Thanks for your support, my \[\[Wikipedia:Requests for adminship\/Ruhrfisch\|request for adminship\]\] passed 62\/0\/0 yesterday\!) <\/font>/gi,'$1');

  str = str.replace(/(<small>)( \[\[User talk:NJA\|<em style="color:#63D1F4">)(\'\'\')(\(t\/<\/em>\]\]\[\[Special:Contributions\/NJA\|<em style="color:#63D1F4">c\)<\/em>\]\]\'\'\'<\/small>)/gi,'$1$3$2$4');

  str = str.replace(/(\|\'\'\'\'\'<span style="color:Black;">Bacon)(\'\'\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User:Seadog\.M\.S\|<font color="darkgreen">\'\'\'Seadog\'\'\')(\]\]<sup>\[\[User talk:Seadog\.M\.S\|<span style=color:darkblue;>Talk)(\]\]<\/sup>)(<\/font>)/gi,'$1$4$2<\/span>$3');
  str = str.replace(/(\|<sup><span style="color:black;">\'\'\'♪\'\'\')(<\/sup>)(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User[a-z_ ]*:AKMask\|<font color="#990011">[a-z]+)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User talk:Shirtwaist\|<sup><span style="color:BurlyWood;">chat<\/span>)(\]\])( <\/sup>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Musicfreak7676\|\'\'\'<sub><span style="color:#deepskyblue;font\-family:Euphemia">Music<span style="color:deeppink;font\-family:Euphemia">Freak<\/span>7676<\/span>)(\'\'\'\]\])(<\/sub>)/gi,'$1$3$2');
  str = str.replace(/(\[\[User:Musicfreak7676\|\'\'\'<sub><span style="color:Crimson;font\-family:Trebuchet MS">Music<span style="color:SeaGreen;font\-family:Euphemia">Freak<\/span>7676<\/span>)(\'\'\'\]\])(<\/sub>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Tofutwitch11\|<span style=\'font\-family: "Arial Black"; color:Teal\'><big>T<\/big><small>ofutwitch11<\/small><\/span>\]\]\'\'\' <sup><small>\[\[User talk:Tofutwitch11\|<font color="Orange">\(T<small>ALK<\/small>\)<\/font>\]\]<\/small><\/sup>)( \d\d)/gi,'$1\'\'\'$2');

  str = str.replace(/(:\'\'The above discussion is preserved as an archive of the debate.  <span style="color:red">\'\'\'Please do not modify it\.\'\'\'<\/span> No further edits should be made to this discussion\. )(<\!\-\-Template:Rfc bottom\-\-><\/div>)/gi,'$1\'\'$2');

  str = str.replace(/({{{2\|\'\'The above discussion is preserved as an archive of the debate\.  <span style="color:red">\'\'\'Please do not modify it\.\'\'\'<\/span> Subsequent comments should be made on the appropriate discussion page \(such as the {{{1\|article}}}\'s talk page or in a \[\[Wikipedia:Deletion review\|deletion review\]\]\)\. No further edits should be made to this page\.)(}}})/gi,'$1\'\'$2');

  str = str.replace(/(:\'\'The above discussion is preserved as an archive of the debate.  <span style="color:red;">\'\'\'Please do not modify it\.\'\'\'<\/span> Subsequent comments should be placed on a related article talk page, if one exists; in an \[\[Wikipedia:Votes for Undeletion\|undeletion request\]\], if it does not; or \'\'\'below\'\'\' this section\.)(<\/div>)/gi,'$1\'\'$2');

  str = str.replace(/(\'\'\'\[\[User[ talk]*:Nableezy\|<span style="color:#C11B17;">nableezy<\/span>\]\]\'\'\' \- \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/font>/gi,'$1');

  str = str.replace(/(\|<span style="text\-shadow: white 0px 0px 2px;">talk<\/)font(>\]\])/gi,'$1span$2');

  str = str.replace(/(<u>\'\'\'\[\[User:STATicVapor\|StaticVapor\]\] <small>\[\[User talk:STATicVapor\|<span style="vertical\-align:super;">message me\!<\/span>\]\]<\/small>)(<\/u>)(\'\'\')/gi,'$1$3$2');

  str = str.replace(/(\[\[User:AkshayAnand\|<b><span style="color:#329ddf">Akshay<\/span><span style="color:#24527c">Anand<\/span>)(\]\])(<\/b>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User talk:OxonAlex\|<span style="color: darkgreen">\- talk)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<p>The [a-z]+ notes:)( <blockquote>)/gi,'$1<\/p>$2');

  str = str.replace(/(\[\[User:CptViraj\|)(<span style="font\-family:Century Gothic">)(<b style="color:teal">Cpt<span style="color:green">Viraj<\/span>)(\]\] \[\[User talk:CptViraj\|<)span( style="color:black">\(Talk\))<\/span>(<\/b>)(<\/span>)(\]\])/gi,'$2$1$3<\/b>$4b$5$6$8$7');

  str = str.replace(/(\[\[User:Karl 334\|<span style="font\-family:Comic Sans MS; color:Blue">\'\'\'Karl 334\'\'\'<\/span>\]\] \[\[User talk:Karl 334\|)<font color="Red"><sup>\'\'Talk\-\'\'(<\/sup>\]\]\[\[Special:Contributions\/Karl_334\|)<font color="Red"><sup>\'\'\-Contribs\'\'(<\/sup>\]\])<\/font><\/font>/gi,'$1<sup style="color:red;">\'\'Talk\-\'\'$2<sup style="color:red;">\'\'\-Contribs\'\'$3');

  str = str.replace(/(<span style="font\-family:Segoe Media Center">\[\[User:Jeffrey Mall\|Jeffrey Mall)<\/font>(\]\]<\/span>)/gi,'$1$2');

  str = str.replace(/(\'\'\'\[\[User[a-z ]*:Gloss\|<span style="font\-family:Arial;color:#000080">G<span style="font\-family:Arial;color:#007BA7">loss<\/span>)(\]\]\'\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<sup>\'\'\'\(\[\[User talk:Ed Fitzgerald\|t\]\] \/ \[\[Special:Contributions\/Ed Fitzgerald\|c\]\]\))(<\/sup>)(\'\'\')/gi,'$1$3$2');

  str = str.replace(/(\[\[User:CynRN\|\'\'\'\'\')<font face="Chiller" size="2px" color="deeppink">(—CynRN)<\/font>(\'\'\'\'\'\]\] <sup>\'\')<font face="Calibri" color="006400">(\(\[\[User talk:CynRN\|)(Talk)(\]\]\))(\'\')<\/font>(<\/sup>)/gi,'$1<span style="font\-family:Chiller; font\-size:small; color:deeppink;">$2<\/span>$3<span style="font\-family:Calibri; color:#006400;">$4<span style="color:#006400;">$5<\/span>$6<\/span>$7$8');

  str = str.replace(/(\|<span style="color:darkblue;background:white;">\'\'\'MC\'\'\')(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<small><sup><span style="color:[a-z]+;">89<\/span> \[\[User talk:Canuckian89\|\([a-z !\?\']+\)\]\])(<\/small\>)(<\/sup>)/gi,'$1$3$2');
  str = str.replace(/(<small><sup>\[\[User talk:Canuckian89\|89 \([a-z !\?\']+\)\]\])(<\/small>)(<\/sup>)/gi,'$1$3$2');
  str = str.replace(/(<small><sup><span style="color:green;">89<\/span> \[\[User talk:Canuckian89\|\([a-z !\?\']+\)\]\])(<\/small>)(<\/sup>)/gi,'$1$3$2');


  str = str.replace(/(\[\[User:Farjad0322\|)(<font face="Times New Roman, serif" color="Blue">)(\'\'\')(Farjad<\/font><font color="Purple">0322)(\'\'\')(\]\] )(<\/font>)/gi,'$1$3$2$4$7$5$6');

  str = str.replace(/(\'\'\[\[User:Newsletterbot\|<font face="High Tower Text" size="3px" color="#248011">Newsletter Bot<\/font>\]\])( \[\[User talk:Newsletterbot\|\'\'\'\'\'<font face="High Tower Text" size="1px" color="#0016FF">Talk<\/font>)(\]\])\'\'/gi,'$1\'\'$2\'\'\'\'\'$3');

  str = str.replace(/(\[\[User:BonesBrigade\|)(<span style="color:#00FFFF;background:#000000;">)(''')(Bones<\/span><span style="color:#FFFFFF;background:#800080;">Brigade)(''')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(<small>)(\'\'\'\'\')(I\'m <\/small>\[\[User:No Parking\|No Parking\]\]<small> and  \[\[User talk:No Parking\|I approved this message\]\])(\'\'\'\'\')(<\/small>)/gi,'$2$1$3$5$4');

  str = str.replace(/(\[\[User:JodyB\|)<font color="#FFFFFF" face="Arial Bold">(<span style="background\-color: #0000FF">\'\'\'Jody\'\'\'<\/span><span style="background\-color:#30D5C8">\'\'\'B\'\'\'<\/span>)(\]\]<sub>\[\[User talk:JodyB\|\'\' talk\'\'\]\]<\/sub>)<\/font>/gi,'<span style="font\-family:"\'Arial Bold\';">$1<span style="color:#FFFFFF">$2<\/span>$3<\/span>');

  str = str.replace(/(\[\[User talk:Inkypaws\|<sup>T<)(sup>\]\])/gi,'$1\/$2');

  str = str.replace(/(\'\'\[\[User:JL 09\|<span style="text\-shadow:silver 0.3em 0.3em 0.1em;color:#0070FF;cursor:move;">JL 09)(\]\]\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/\'\'\'<font color="titanic" face="book antiqua" size="2">\[\[User:Brambleberry of RiverClan\|Brambleberry\]\]\'\'\' <sup>\'\'\' ☾\[\[User talk:Brambleberry of RiverClan\|of RC\]\]☽\'\'\'<\/sup><\/font>/gi, '\'\'\'<span style="color:#08a3c2; font\-family:\'book antiqua\'; font\-size:small">\[\[User:Brambleberry of RiverClan\|<span style="color:#08a3c2;">Brambleberry<\/span>\]\] <sup>☾\[\[User talk:Brambleberry of RiverClan\|<span style="color:#08a3c2;">of RC<\/span>\]\]☽<\/sup><\/span>\'\'\'');

  str = str.replace(/<font color="Black">(\[\[User talk:Anthony\.bradbury\|)("talk")(\]\])<\/font>/gi,'$1<span style="color:Black">$2<\/span>$3');

  str = str.replace(/(\[\[User:DeltaQuad\|<font color="green">DQ )(<font color="red"> [a-z ]+)(\]\]\[\[User_Talk:DeltaQuad\|)<font color="blue"> \(ʞlɐʇ\) (\]\])<\/font><\/font><\/font>/gi,'$1<\/font>$2<\/font>$3<span style="color:blue"> \(ʞlɐʇ\) <\/span>$4');

  str = str.replace(/(\[\[User:DeltaQuad\|<font color="green">DQ)(\]\]\[\[User_Talk:DeltaQuad\|)<font color="blue"> \(ʞlɐʇ\) (\]\])<\/font><\/font>/gi,'$1<\/font>$2<span style="color:blue"> \(ʞlɐʇ\) <\/span>$3');

  str = str.replace(/(\[\[User:Aranda56\|JAranda\]\])\'\' \| (\[\[User talk:Aranda56\|[a-z ]+\]\] )/gi,'$1 &#124; $2');

  str = str.replace(/(\[\[User:ShepBot\|<span style="color:green;">\'\'\'§hepBot\'\'\'<\/span>\]\])(''')(&nbsp;<small>)(\(\[\[User talk:ShepBot\|<span style="color:red;">Disable<\/span>\]\]\)\'\'\'<\/small>)/gi,'$1$3$2$4');

  str = str.replace(/(Host\+checkin}} )<\/span> /gi,'$1');

  str = str.replace(/(\|<span style="color:blue;"><sup>Walkie\-talkie)(<\/span>\]\])(<\/sup>)/gi,'$1$3$2');

  str = str.replace(/(<b>\[\[User:MarcusBritish\|)<font color="(#003399">Ma<span style="color:#CC0000;">&reg;&copy;<\/span>usBr<span style="color:#CC0000;">iti<\/span>sh)<\/font>\'\'\'(\]\]&nbsp;<sup>\[<\/sup><sup>\[\[User talk:MarcusBritish\|talk\]\]\]<\/sup><\/b>)/gi,'$1<span style="color:$2<\/span>$3');
  str = str.replace(/(\'\'\'\[\[User:MarcusBritish\|<)font color="(#001C56">Ma<span style="color:#B40000;">&reg;&copy;<\/span>usBr<span style="color:#B40000;">iti<\/span>sh<\/)font>\'\'\'(\]\]&nbsp;<sup>&#91;\[\[User talk:MarcusBritish\|chat\]\]\]<\/sup>\'\'\' )/gi,'$1span style="color:$2span>$3');
  str = str.replace(/(\[\[User:MarcusBritish|<span style="color:navy;">Ma<\/span><span style="color:red;">&reg;&copy;<\/span><span style="color:navy;">usBr<\/span><span style="color:red;">iti<\/span><span style="color:navy;">sh<\/span>)\'\'\'(\]\])/gi,'$1$2');

  str = str.replace(/(\[\[User_talk:Biblioworm\|<span style="color:#6F4E37">worm)(\]\]\'\'\'\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<sup>\(talk to me\))(<\/span>)(<\/sup>)/gi,'$1$3$2');

  str = str.replace(/(<sup>)(\'\')(\[\[User talk:Dibbydib\|<span style="color:#117f00;">[a-z]+<\/span>\]\]<\/sup><span style="color:#117f00;"> or <\/span><sub>\[\[Special:Contributions\/Dibbydib\|<span style="color:#117f00;">snoop<\/span>\]\])(\'\')(<\/sub>)/gi,'$2$1$3$5$4');

  str = str.replace(/(\|<sub>PC Load Letter)(\]\])(<\/sub>)/gi,'$1$3$2');

  str = str.replace(/(\'\'\'<span style="text\-shadow:#808080 0.2em 0.2em 0.2em">\[\[User:Mr RD\|<span style="font\-size:medium;"><span style="color:blue;font\-family:Comic Sans MS">Mr <span style="color:green;">RD<\/span><\/span><\/span>\]\])(\'\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Steelerfan\-94\|\'\'\'<span style="background:Black;color:Yellow">SteelersFan)(\'\'\'\]\]\[\[User talk:Steelerfan\-94\|\'\'\'<span style="background:Black;color:Yellow">94)(\'\'\'\]\])/gi,'$1<\/span>$2<\/span>$3');
  str = str.replace(/(\[\[User:Steelerfan\-94\|<span style="color:black">SteelersFan\-)(\]\]\[\[User talk:Steelerfan\-94\|<span style="color:gold">9)(\]\])/gi,'$1<\/span>$2<\/span>$3');

  str = str.replace(/(\[\[User:lewisskinner\|\'\'\'<font color="red">L.J.Skinner)(\'\'\')(<\/font>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\|\'\'\'<span style="color:red;">L.J.Skinner)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\|<span style="color:#33CCCC;"><sub>&isin;)(<\/span>)(<\/sub>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(<span style="color:[#\da-z]+;">Uidhir)(\'\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\|<font color="00DD00">\'\'\'The Sunshine \'\'\')(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(<sub>\[\[Special:Contributions\/PhoenixMourning\|contribs\]\])(\'\'\')(<\/sub>)/gi,'$1$3$2');

  str = str.replace(/(>snore)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\[\[Special:Contributions\/Namcokid47\|<span style="color: #0073e6">\(Contribs\))(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\[\[Wikipedia:Esperanza\|<span style="color:green;cursor:crosshair;">e)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Mastrchf91\|<span style="font\-family:[a-z ]+, sans\-serif; color:DarkBlue">Mastrchf\d*)(\]\] \(<sup>\[\[User talk:Mastrchf91\|t\]\]<\/sup>\/<sub>\[\[Special:Contributions\/Mastrchf91\|c\]\]<\/sub>\))(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:[1tomicaⱮ]+\|)(<span style="text\-shadow:#BBBBBB 0\.1em 0\.1em 0\.1em; class=texhtml">)(<span style="color:darkgreen;">\'\'\'[1tomicaⱮ]+\'\'\'<\/span>\]\] \[\[User talk:[1tomicaⱮ]+\|<span style="color:darkgreen;">\(talk\)<\/span>)(<\/span>)(\]\])/gi,'$2$1$3$5$4');

  str = str.replace(/<font=3> (Thanks for your support, my \[\[Wikipedia:Requests for adminship\/Victuallers\|request for adminship\]\] passed 60\/0\/0 on Monday\! )<\/font>/gi,'$1');

  str = str.replace(/(\[\[User:Timbouctou\|)\'\'(<span style=\'font\-family: Georgia, serif; color:#639;\'><em>Timbouctou<\/em><\/span>\]\] \(\[\[User talk:Timbouctou\|)\'\'(<span style=\'font\-family: Georgia, serif; color:#639;\'><em>talk<\/em><\/span>\]\])/gi,'$1$2$3');
  str = str.replace(/(\[\[User:Timbouctou\|)\'\'(<span style=\'font\-family: Georgia, serif; color:#639;\'><em>Timbouctou<\/em><\/span>\]\] )(\d)/gi,'$1$2$3');

  str = str.replace(/(<small> *)(\[\[User talk:NJA\|<em style="color:#63D1F4">)(\'\'\')(\(t\/<\/em>\]\]\[\[Special:Contributions\/NJA\|<em style="color:#63D1F4">c\)<\/em>\]\]\'\'\'<\/small>)/gi,'$1$3$2$4');

  str = str.replace(/(>Tvaughn05)(\]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(><sub>e<\/sub>)(\]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\|<span style="color:#007700;cursor:crosshair;"><sub><em><small>\(Contribs\)<\/small><\/em><\/sub>)(\]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\|<span style="color:green;cursor:crosshair;">e)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(> Ѕandahl)(\'\'\'\'\')(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(>Outriggr)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(>OLAJUWON)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/<font (style="color:#5A3696;">&hearts;\[\[User:Purplefeltangel\|<font style="color:#5A3696;">purplefeltangel<\/font>\]\] <sup> \(\[\[User talk:Purplefeltangel\|<font style="color:#5A3696;">talk<\/font>\]\]\)<\/sup> &hearts; <sup>\(\[\[Special:Contributions\/Purplefeltangel\|<font style="color:#5A3696;">contribs<\/font>\]\]\))<\/font>(<\/sup><\/span>)/gi,'<span $1$2');

  str = str.replace(/(<font color="black">)(\[\[WP:BDC\|)(<b>BIRTHDAY<\/b>COMMITTEE)<\/sub>(\]\])(<\/font>)/gi,'$2<span style="color:black">$3<\/span>$4');
  str = str.replace(/(<font color="black">)(\[\[WP:BDC\|)(Wikipedia Birthday Committee)(\]\])(<\/font>)/gi,'$2<span style="color:black">$3<\/span>$4');
  str = str.replace(/(<font color="blue">)(\[\[WP:BDC\|)(Wikipedia Birthday Committee!!!)(\]\])(<\/font>)/gi,'$2<span style="color:blue">$3<\/span>$4');
  str = str.replace(/<font color="blue">(\[\[WP:BDC\|)(Wikipedia Birthday Committee\!)(\]\])<\/font>/gi,'$1<span style="color:blue">$2</span>$3');
  str = str.replace(/(\'\'\'Wishing \[\[User:[a-z\d\. {}]+\|[a-z\d\. {}]+\]\] a very happy [a-z ]+ on behalf of the \[\[WP:BDC\|Birthday Committee\]\]!)( [<\[])/gi,'$1\'\'\'$2');
  str = str.replace(/(\[\[WP:BDC\|<font color="yellow">Wikipedia Birthday Committee)(\]\]!)/gi,'$1<\/font>$2');

  str = str.replace(/<font color="white">(\[\[)([ThanksgivCrtm]+)(\]\])<\/font>/gi,'$1$2\|<span style="color:white">$2<\/span>$3');
  str = str.replace(/<font=3> (Wishing you a<br>"Feliz Navidad and a Happy new Year")<\/font>/gi,'$1');

  str = str.replace(/(<span style="color:[a-z\d#]+">Chequers)(\'\')(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(<span style="color:[a-z\d#]+">Chequers)(\]\]\'\'+)(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\(\[\[User talk:Sabrebd\|talk)(<\/span>)(\]\]\))/gi,'$1$3$2');
  str = str.replace(/(\'\'\'<span style="font.*">\[\[User:Sabrebd\|<span style="color:blue;">SabreBD<\/span>\]\] \(\[\[User talk:Sabrebd\|talk\]\]\)<\/span>) /gi,'$1\'\'\' ');

  str = str.replace(/(\[\[User:GandalftheWise\|<span style="color:blue">Gandalf)(<span style="color:green">the)(<span style="color=red">Wise)(\]\] : \[\[User_talk:GandalftheWise\|<span style="color:blue">Talk )(<span style="color:red">Page )(\]\])/gi,'$1<\/span>$2<\/span>$3<\/span>$4<\/span>$5<\/span>$6');

  //For User:Wireless Keyboard and User:Class I Laser (same user, renamed)
  str = str.replace(/(\[\[User:[a-z ]+\|<span style="color:#0000FF">[a-z ]+ )(<span style="color:green">[a-z ]+)(<span style="color=#FF7F00>[a-z ]+)(\]\])/gi,'$1<\/span>$2<\/span>$3<\/span>$4');
  str = str.replace(/(\[\[User_talk:[a-z ]+\|<sup><span style="color: #FF0000"><i>[a-z ]+!<\/i>)(<\/sup>\]\])/gi,'$1<\/span>$2');
  str = str.replace(/(\[\[Special:Contributions\/[a-z ]+\|<sub><span style="color:#800080"><i>[a-z]+!<\/i>)(<\/sub>\]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\[\[User:Class I Laser\|<span style="color:#00FFFF">C)(<span style="color: #FF0000">l)(<span style="color:#0000FF">a)(<span style="color:#00FF00">s)(<span style="color:blue">s )(<span style="color:brown">I )(<span style="color:magenta">Laser)(\]\])/gi,'$1<\/span>$2<\/span>$3<\/span>$4<\/span>$5<\/span>$6<\/span>$7<\/span>$8');
  str = str.replace(/(\[\[User_talk:Class I Laser\|<sup><span style="color: #0000FF">\()(<span style="color:#FF0000">t)(<span style="color:#00FF00">a)(<span style="color: #964B00">l)(<span style="color:#FF00FF">k)(<span style="color:)\((#00FFFF">\))(<\/sup>\]\])(<\/span>)/gi,'$1<\/span>$2<\/span>$3<\/span>$4<\/span>$5<\/span>$6$7$9$8');
  str = str.replace(/(\[\[User:Wireless Keyboard\|<span style="color:#00FFFF">Wi)(<span style="color: #FF0000">re)(<span style="color:#0000FF">le)(<span style="color:#00FF00">ss )(<span style="color:blue">Key)(<span style="color:brown">boa)(<span style="color:magenta">rd)(\]\] \[\[User_talk:Wireless Keyboard\|<sup><span style="color: #0000FF">\()(<span style="color:#FF0000">t)(<span style="color:#00FF00">a)(<span style="color: #964B00">l)(<span style="color:#FF00FF">k)(<span style="color:)\((#00FFFF">\))(<\/sup>\]\])<\/span>/gi,'$1<\/span>$2<\/span>$3<\/span>$4<\/span>$5<\/span>$6<\/span>$7<\/span>$8<\/span>$9<\/span>$10<\/span>$11<\/span>$12<\/span>$13$14<\/span>$15');

  str = str.replace(/(\| quote *= *You may also wish to consider using a Wizard to help you create articles. See the \[\[Wikipedia:Article wizard[ 2\.0]*\|Article Wizard\]\]\.)\'\'\'\'\'/gi,'$1');
  str = str.replace(/(\| quote *= *A Wizard is available to walk you through these steps. See the \[\[Wikipedia:Article wizard[ 2\.0]*\|Article Wizard\]\]\.)\'\'\'\'\'/gi,'$1');
  str = str.replace(/(\[\[File:Presa de decissions\.png\|23px\]\] &nbsp; \'\'\'\'\'\[\[WP:ADOPT\|Get adopted\]\]'\')(\n\|\-)/gmi,'$1\'\'\'$2');

  str = str.replace(/(<font face="tahoma" color="SteelBlue">)(\[\[User talk:Ipodnano05\|<sup>)(\'\'\'leave@message\'\'\')(<\/sup>\]\])(<\/font>)/gi,'$2$1$3$5$4');

  str = str.replace(/<font color="red">\[\[User_talk:SlimVirgin\|talk\|\]\]<\/font>/gi,'<font color="red">\[\[User_talk:SlimVirgin\|talk\]\]<\/font>');

  str = str.replace(/(\[\[User:Harland1\|<span style="font\-family:Zapfino, sans\-serif; color:DarkRed">Harland1)(\]\] \(<sup>\[\[User talk:Harland1\|t\]\]<\/sup>\/<sub>\[\[Special:Contributions\/Harland1\|c\]\]<\/sub>\))(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(<sup>\[\[User talk:Wesley [WolfMouse]+\|Talk\]\])(\'\'\' )(<\/sup>)(<\/span>)/gi,'$1$3$2$4');
  str = str.replace(/(<span style="font\-family:Century;">\'\'\'\[\[User:Wesley Mouse\|<span style="color:#3F00FF">Wes Mouse<\/span>\]\]&nbsp;&nbsp;<sup>\[\[User talk:Wesley Mouse\|<span style="color:#3F00FF">T@lk<\/span>\]\])(\'\'\')(<\/sup>)(<\/span>)/gi,'$1$3$2$4');
  str = str.replace(/(<sup>\[\[User talk:Wesley Mouse\|<span style="color:#003">T@lk<\/span>\]\])(\'\'\')(<\/sup>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User talk:Pigman\|<sup><font color="red">man)(\]\])(<\/font><\/sup>)/gi,'$1$3$2');

  str = str.replace(/(\|<b><span style="color:#005080;">edits<\/span>)(\]\])(<\/b>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Dockingman\|<span style="color:#6699cc">docking<span style="color:#cc0000">man)(\]\])(<\/span><\/span>)/gi,'$1$3$2');

  str = str.replace(/(\|<b style="color:#008000">\'\'<sup>\(talk\)<\/sup>)(<\/b>)(\'\')(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(<span style="font\-family:Tahoma;">)(\'\'\')(\[\[User:Fridae\'sDoom\|<font color=red>Ғяіᴆaз\'§Đøøм<\/font>\]\]<\/span> • <span style="font\-family:Trebuchet MS;font\-variant:small\-caps;">\[\[User talk:Fridae\'sDoom\|<span style="color:grey;">Champagne\?<\/span>\]\] • \d+:\d+[ap]m •)(\'\'\')(<\/span>)/gi,'$2$1$3$5$4');
  str = str.replace(/(<span style="font\-family:Tahoma;">)(\'\'\')(\[\[User:Fridae\'sDoom\|<span style="color:red">Ғяіᴆaз\'§Đøøм<\/span>\]\]<\/span> • <span style="font\-family:Trebuchet MS; *font\-variant:small\-caps;[:a-z;]+">\[\[User talk:Fridae\'sDoom\|<span style="color:grey;">Champagne\?<\/span>\]\] • \d+:\d+[ap]m •)(\'\'\')(<\/span>)/gi,'$2$1$3$5$4');
  str = str.replace(/(<span style="font\-family:Tahoma;">)(\'\'\')(\[\[User:Fridae\'sDoom\|<font color=red>Ғяіᴆaз\'§Đøøм<\/font>\]\]<\/span> &#124; <span style="font\-family:Trebuchet MS">\[\[User talk:Fridae\'sDoom\|<font color="Teal">Champagne\?<\/font>\]\])(\'\'\')(<\/span>)/gi,'$2$1$3$5$4');
  str = str.replace(/(\[\[AEST\|<font color="grey">\d+:\d+[ap]m)(\]\] •\'\'\'<\/span>)/gi,'$1<\/font>$2');  // tail end of Fridae'sDoom sig

  str = str.replace(/<font color="*red"*>Ғяіᴆaз\'§Đøøм<\/font>/gi,'<span style="color:red">Ғяіᴆaз\'§Đøøм<\/span>');

  str = str.replace(/(\[\[User:KMFDM Fan\|<span style="background:#000000;color:#[A-F\d]+">\'\'\'KMFDM FAN\'\'\')(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:AutomaticStrikeout\|)(<span style="color:[#a-z\d ]+">)(\'\'\')(Automatic<\/span><span style="color:[#a-z\d ]+">\'\'Strikeout\'\')(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(\[\[Special:Contributions\/AutomaticStrikeout\|<span style="color:[#a-z\d ]+">C)(\]\])/gi,'$1</span>$2');

  str = str.replace(/(\[\[User:RickK\|Rick\]\]\'\'\'\[\[User talk:RickK\|K)(\'\'\')(\]\])( *)/gi,'$1$3$2$4');
  str = str.replace(/(\[\[User:RickK\|Rick\]\]\'\'\'\[\[User talk:RickK\|K\]\])( [012])/gi,'$1\'\'\'$2');

  str = str.replace(/(\|<su[bp]><span style="color:black;"><small>\'\'\'503\'\'\'<\/small>)(<\/su[bp]>)(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\'\'\'\'\'<small><span style.*User:Truco.*o<\/span>)(<\/small>)(<\/span>)(\'\'\'\'\')/gi,'$1$3$2$4');
  str = str.replace(/(\[\[User talk:Truco\|<sub>)(<font color="black">)(<small>)(\'\'\'503\'\'\')(<\/small>)(<\/sub>)(<\/font>)(\]\])/gi,'$1$3$2$4$7$5$6$8');

  str = str.replace(/(\[\[User:Tiddly Tom\|)(<span style="color:#7FFF00;background:#483C32;">)(\'\'\')(Tiddly<\/span><span style="color:#483C32;background:#483C32;">\-<\/span><span style="color:#DFFF00;background:#483C32;">Tom)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(\[\[User:Save Us.Y2J\|<span style="color:blue">Save)(\]\] \[\[User talk:Save Us.Y2J\|<span style="color:green">Us.)(\]\])/gi,'$1<\/span>$2<\/span>$3');

  str = str.replace(/(<sup><small><b>\[\[User_talk:Evilphoenix\|Burn\!\]\]<\/b>)(<\/sup>)(<\/small>)/gi,'$1$3$2');

  str = str.replace(/(\|<span style= "color:green">Godric)(]\])(<\/span>)/gi,'$1$3$2');
  str = str.replace(/(\|<span style= "color:green">\'\'Winged Blades\'\')(]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/(\'\'\'\[\[User:HindWIKI\|HindWiki\]\]<sup>\[\[User talk:HindWIKI\|<span style="font\-size: x\-small;">Connect<\/span>\]\])(\'\'\')(<\/sup>)/gi,'$1$3$2');

  //Cyberpower and C678 and similar
  str = str.replace(/(\|<span style="color: *[a-z0-9#]+; *font\-family:[a-z ]+;*">[a-z \d]+)(\]\])/gi,'$1<\/span>$2');
  str = str.replace(/(\|<span style="color: *[a-z0-9#]+; *font\-family:[a-z ]+;*">[a-z \d]+<span style="color:[a-z]+">power)(\]\])/gi,'$1<\/span><\/span>$2');
  str = str.replace(/(\|<sup style="color: *[a-z0-9#]+; *font\-family:[a-z ]+;*">[a-z \d]+<span style="color:[a-z0-9#\\]+">power)(\]\])/gi,'$1<\/span><\/sup>$2');
  str = str.replace(/(\|<sup style="[a-z\-:\d\.; ]*color:[\n ]*[a-z0-9#\\]+; *font\-family:[a-z ]+;*">[a-z !\d]+)(\]\])/gmi,'$1<\/sup>$2');
  str = str.replace(/(\[\[User talk:C[yberpower]*678\|<span style="color:[a-z0-9#\\]+;*">[a-z \d]+)(\]\])/gi,'$1<\/span>$2');
  str = str.replace(/(\[\[User talk:C[yberpower]*678\|<sup style="margin\-left:\-\d+\.\dex;color:)\n(#FF8C00;font\-family:arnprior;*">[a-z ]+)(\]\])/gmi,'$1$2<\/sup>$3');
  str = str.replace(/(\[\[User[ talk]*:C[yberpower]*678\|\'\'\'<span style="font\-family:monospace"><span style="color:[a-z]+>CYBER<\/span><span style="color:[a-z ]+>POWER<\/span>)(\'\'\'\]\])/gi,'$1<\/span>$2');
  str = str.replace(/(Cyberbot II\|<span style="color: *[a-z0-9#]+">[a-z \d]+)(\]\])/gi,'$1<\/span>$2');


  str = str.replace(/(\[\[User:Lil\-unique1\|<span style="color:#002a2a">\'\'\'Lil\-<\/span><span style="color:#0c6e70">Unique1\'\'\'\]\]<\/span>)/gi,'\[\[User:Lil\-unique1\|\'\'\'<span style="color:#002a2a">Lil\-<\/span><span style="color:#0c6e70">Unique1<\/span>\'\'\'\]\]');

  str = str.replace(/(\|<font face="comic sans ms" color="#006400">James086)(\]\])(<\/font>)/gi,'$1$3$2');
  str = str.replace(/(\|<font color="navy">Talk)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(002bb8">count<\/span>\]\))(<\/span>)(<\/sup>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Merkinsmum\|<b><font color="#FF1493">Merkin\'s)(\]\])(<\/font><\/b>)( +\[\[User talk:Merkinsmum\|<b><font color="#FF1493">mum)(\]\])(<\/font><\/b>)/gi,'$1$3$2$4$6$5');
  str = str.replace(/(\[\[User:Merkinsmum\|<b><font color="#FF1493">Merkin\'s)(\]\])(<\/font><\/b>)/gi,'$1$3$2');
  str = str.replace(/(\[\[User talk:Merkinsmum\|<b><font color="#FF1493">mum)(\]\])(<\/font><\/b>)/gi,'$1$3$2');

  str = str.replace(/(<font color=green>\)\-\-\-\^\-\-)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Asics\|<span style="font-family:impact;"><span style="background:black;color:aqua">Asics <\/span>)(\]\])/g,'$1<\/span>$2');
  str = str.replace(/(\[\[Wikipedia:Editor review\/Asics\|<font color="Black">Editor review\!)(\]\])(<\/font>)/g,'$1$3$2');

  str = str.replace(/(\|<font color="DarkBlue">[TR]{1})(\]\]\'\'\')(<\/font>)/g,'$1$3$2');
  str = str.replace(/(\|<font color="Blue">[hS]{1})(\]\]\'\'\')(<\/font>)/g,'$1$3$2');
  str = str.replace(/(\|<font color="LightBlue">[eJ]{1})(\]\]\'\'\')(<\/font>)/g,'$1$3$2');

  str = str.replace(/(<font color="black">All)(\]\]\'\'\')(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(\|<font color="darkgreen">ESP)(\]\])(<\/font>)/gi,'$1$3$2');
  str = str.replace(/(\|<font color="darkred">ESP)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(<font color="#333333">ecir)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Milk\'s Favorite Cookie\|<font face="Snap ITC" size="3px" color="#4D0100">\'\'\'M\'\'\'<\/font>)\'\'\'\'\'(\]\])/gi,'$1$2');

  str = str.replace(/(\[\[User:Milk\'s Favorite Cookie\|<font face="Modern No. 20" size="3px" color="#4D0100">ilks<\/font>)\'\'\'\'\'(\]\])/gi,'$1$2');

  str = str.replace(/(\[\[User talk:Milk\'s Favorite Cookie\|<font face="Snap ITC" size="3px" color="#4D0100">\'\'\'F\'\'\'<\/font>)\'\'\'\'\'(\]\])/gi,'$1$2');

  str = str.replace(/(\[\[User talk:Milk's Favorite Cookie\|\'<font face="Modern No. 20" size="3px" color="#4D0100">avorite<\/font>)\'\'\'\'\'(\]\])/gi,'$1$2'); 

  str = str.replace(/(\[\[Special:Contributions\/Milk\'s Favorite Cookie\|)\'\'\'\'\'(<font face="Snap ITC" size="3px" color="#4D0100">\'\'\'C\'\'\'<\/font>\]\])/gi,'$1$2');

  str = str.replace(/(\[\[Special:Contributions\/Milk\'s Favorite Cookie\|\'\'\'\'\'<font face="Modern No. 20" size="3px" color="#4D0100">ookie<\/font>)(\]\])/gi,'$1\'\'\'\'\'$2');

  str = str.replace(/(\[\[User:Milk\'s Favorite Cookie\|<span style="font\-family:High Tower Text; font\-size:medium; color:#4D0100;">Milk\'s<\/span>)\'\'\'\'\'(\]\])/gi,'$1$2');

  str = str.replace(/(\[\[Special:Contributions\/Milk\'s Favorite Cookie\|\'\'\'\'\'<span style="font\-family:High Tower Text; font\-size:medium; color:#4D0100;">Cookie<\/span>)(\]\] )/gi,'$1\'\'\'\'\'$2');

  str = str.replace(/(\[\[User:Milk\'s Favørite Cookie\|\'\'\'<font color="#9696A0" face="[a-z ]+">Milk\'s Favorite)(\]\] \[\[User_Talk:Milk\'s Favorite Cookie\|<font color="#4D0100" face="Snap ITC">\'\'Cøøkie\'\'<\/font>)(<\/font>\'\'\')(\]\])/gi,'$1$3$2$4');

  str = str.replace(/> \'\'\'Relisting due to insufficient votes\.<\/span>\'\'\'/gi,'> \'\'\'Relisting due to insufficient votes\.\'\'\'<\/span>');

  str = str.replace(/>\* \'\'\'Relisting due to insufficient votes\.<\/span>\'\'\'/gi,'>\* \'\'\'Relisting due to insufficient votes\.\'\'\'<\/span>');

  str = str.replace(/\'\'\'\[\[User:Yellow Dingo\|<b style="color:#FFCC33">Yellow<\/b> <b style="color:brown">Dingo\]\]\'\'\'&#160;\[\[User talk:Yellow Dingo\|<b style="color:BLUE">\(talk\)<\/b>\]\] ([\d:, a-z]+ \(UTC\))<\/b>/gi,'\'\'\'\[\[User:Yellow Dingo\|<span style="color:#FFCC33">Yellow<\/span> <span style="color:brown">Dingo<\/span>\]\]&#160;\[\[User talk:Yellow Dingo\|<span style="color:BLUE">\(talk\)<\/span>\]\]\'\'\' $1');

  str = str.replace(/\'\'\'\[\[User:Yellow Dingo\|<b style="color:#FFCC33">Yellow<\/b> <b style="color:brown">Dingo\]\]\'\'\'&#160;\[\[User talk:Yellow Dingo\|<b style="color:BLUE">\(talk\)<\/b>\]\] ([\d:, a-z]+ \(UTC\))<\/small><\/b>/gi,'\'\'\'\[\[User:Yellow Dingo\|<span style="color:#FFCC33">Yellow<\/span> <span style="color:brown">Dingo<\/span>\]\]&#160;\[\[User talk:Yellow Dingo\|<span style="color:BLUE">\(talk\)<\/span>\]\]\'\'\' $1<\/small>');

  str = str.replace(/\[\[User:Mitth\'raw\'nuruodo\|<font face=verdana><em><font color=blue>Chiss <font color=red>Boy<\/em><\/font><\/font><\/font><\/font>\]\]/gi, '\[\[User:Mitth\'raw\'nuruodo\|<em style="font-family:verdana"><span style="color:blue">Chiss<\/span> <span style="color:red">Boy<\/span><\/em>\]\]');

  str = str.replace(/(\[\[User:Aycliffe\|)(<span style="color:White;">)(\'\'\')(ayc<\/span><span style="color:Gray;">li<\/span><span style="color:White;">ffe)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(\[\[User:1redrun\|)(<span style="color:Black;">)(\'\'\')(1<\/span><span style="color:Red;">redrun)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4$6$5$7');

  str = str.replace(/(<span style="font-size:80%;">Q5G7FviTHBac3dx8HhdNYwDVstR)(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/\[\[User:Mitth\'raw\'nuruodo\|<font face=([a-z]+)><em><font color=blue><b>Chiss <font color=red>Boy<\/b><\/em><\/font><\/font><\/font><\/font>\]\]/gi, '\[\[User:Mitth\'raw\'nuruodo\|<span style="font\-family:$1"><em><b><font color=blue>Chiss <\/font><font color=red>Boy<\/font><\/b><\/em><\/span>\]\]');

  str = str.replace(/(\[\[User_talk:Ingoolemo\|<span style="color:blue;"><sup>talk)(<\/span>)(<\/sup>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User talk:Heironymous Rowe\|\'\'\'\<span style\=\"color:darkBlue\"\>iro)(\'\'\')(\<\/span\>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/( \[\[User:Diligent Terrier\|Diligent\]\]\[\[User[ talk]*:Diligent Terrier\|\<span style\=\"color:orange\"\>\'\'\'Terrier\'\'\'\<\/span\>\]\] \<small\>\[\[User:Diligent Terrier\/Autographs\|\(and friends\)\]\]\<\/small\>)\<\/font\> /gi,'$1 ');
  str = str.replace(/( \[\[User talk:Diligent Terrier\|<span style=color:[a-z]+>\'\'\'<small>[\[\(]talk[\]\)]<\/small>\'\'\')(\]\])(<\/span>)/gi,'$1$3$2');

  str = str.replace(/\[\[WP:IKNOWBEST\|<font color="black">Y\'\'\'&#124;\]\]\'\'\'<\/font>/gi,'\[\[WP:IKNOWBEST\|<span style="color:black">Y\'\'\'&#124;\'\'\'<\/span>\]\]');

  str = str.replace(/\[\[User:Xp54321\|<font color="0070FF">\'\'\'Xp54321\'\'\'\]\]<\/font>/gi,'\[\[User:Xp54321\|<span style="color:#0070FF">\'\'\'Xp54321\'\'\'<\/span>\]\]');

  str = str.replace(/\[\[User:Fosse8\|<font color="gold"><b style="background:#000066">✤ Fosse 8 ✤<\/b>\]\]<\/font>/gi,'\[\[User:Fosse8\|<b style="background:#000066;color:gold;">✤ Fosse 8 ✤<\/b>\]\]');

  str = str.replace(/(\[\[User:SRX\|<span style="color:[blackue]+;">[STru]+<\/span>)<\/font>(\]\])/gi,'$1$2');
  str = str.replace(/(\[\[User:SRX\/Guestbook\|<span style="color:black;">X<\/span>)<\/font>(\]\])/gi,'$1$2');
  str = str.replace(/(<span style="font\-size:small;">\[\[User:SRX\|<span style="color:blue;">S<\/span>)<\/span>(<span style="color:red;">R<\/span><span style="color:blue;">X<\/span>)<\/font>(\]\])(\'\'\'\'\')<\/font>/gi,'$1$2$3<\/span>$4');
  str = str.replace(/(\[\[User:SRX\|<span style="color:[a-z]+;">S)<\/font>(<\/span><span style="color:[a-z]+;">R<\/span><span style="color:[a-z]+;">X)<\/font>(<\/span>\]\])/gi,'$1$2$3');

  str = str.replace(/(\|  \'\'\'Cheers,<span style="color:#009500;"> :\) Dloh<\/span><span style="color:#950095;">cierekim)(\'\'\' )(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(<sup>\'\'\'\[\[User_talk:It Is Me Here\|<font color="#CC6600;">t<\/font>\]\] \/ \[\[Special:Contributions\/It Is Me Here\|<font color="#CC6600;">c<\/font>\]\])(<\/sup>)(\'\'\')/gi,'$1$3$2');
  str = str.replace(/(<sup>\'\'\'\[\[User_talk:It Is Me Here\|<span style="color:#CC6600;*">t<\/span>\]\] \/ \[\[Special:Contributions\/It Is Me Here\|<span style="color:#CC6600;*">c<\/span>\]\])(<\/sup>)(\'\'\')/gi,'$1$3$2');

  str = str.replace(/(\[\[user:Eagle 101\|<font color="green">\'\'\'Eagle\'\'\'<\/font><font color="red">\'\'\'101\'\'\')(\]\] )(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User talk:Nixeagle\|<font color="red">eagle)(\]\])(<\/font>)/gi,'$1$3$2');

  str = str.replace(/(<span style="color:green"> )(\'\'\')(\[\[User:CapMan07008\|\'\'p\'\'\]\]<\/span>)/gi,'$2$1$3');

  str = str.replace(/(\[\[User talk:Ultimus\|)(<span style="color:red;">)\'\'\'(UlT<\/span><span style="color:green;">i<\/span><span style="color:blue;">MuS)\'\'\'(<\/span>)(\]\])/gi,'$1\'\'\'$2$3$4\'\'\'$5');

  str = str.replace(/(<span style="color:red;">)(\'\'\')(UlT<\/span><span style="color:green;">i<\/span><span style="color:blue;">MuS)\'\'\'(<\/span>)/gi,'$2$1$3$4$2');

  str = str.replace(/\|(\<span style\=\"color:[#a-z\d ]+;\"\>)\'\'\'(La\<\/span\>[\&nbsp; ]+\<span style\=\"color:[#a-z\d ]+;\"\>Pianista)\'\'\'(\<\/span\>)\]\]/gi,'\|\'\'\'$1$2$3\'\'\'\]\]');

  str = str.replace(/(\[\[User:Minor4th\|)(\<b span style\=\"color:#000000;font\-size:110%;\"\>)(\<span style\=\"font\-family:papyrus;\"\>)(Minor\<\/b\>\<b span style\=\"color:#ff0000;font\-size:80%;\"\>4th)(\<\/span\>)(\<\/b\>)(\]\])/g,'$1$3$2$4$6$5$7');

  str = str.replace(/(\|\<big\>\<span style\=\"color:#900;\"\>\'\'\'\'\'S\'\'\'\'\')(\<\/big\>)(\<\/span\>)(mith\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\|\<big\>\<span style\=\"color:#900;\"\>\'\'\'\'\'D\'\'\'\'\')(\<\/big\>)(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\<big\>\<span style\=\"color:#900;\"\>\'\'\'\'\'S\'\'\'\'\')(\<\/big\>\<\/big\>\<\/big\>)(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\<big\>\<span style\=\"color:#900;\"\>\'\'\'\'\'D\'\'\'\'\')(\<\/big\>\<\/big\>\<\/big\>)(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\|\<big\>\<span style\=\"color:#33FFFF;\"\>\'\'\'\'\'M\'\'\'\'\')(\<\/big\>)(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\|\<big\>\<span style\=\"color:#F88017;\"\>\'\'\'\'\'M\'\'\'\'\')(\<\/big\>)(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\|\<big\>\<span style\=\"color:#CCCCCC;\"\>\'\'\'\'\'F\'\'\'\'\')(\<\/big\>)(\<\/span\>)(ox\]\])/gi,'$1$3$2$4');

  str = str.replace(/(">''Dark)( <span)/gi,'$1\'\'$2');

  str = str.replace(/(\"\>\'\'\'Mr)(\<\/span\>\<span style\=\"color:Green;\"\>\'\'\'WooHoo\'\'\'\<)/gi,'$1\'\'\'$2');

  str = str.replace(/(Jacobite\<\/span\>\]\])(\<\/span\>\<span style\=\"font\-family:Courier New;\"\>)(\'\'\')/gi,'$1$3$2');

//overbroad
//  str = str.replace(/(\|\<span style[^\]\<]+)(\]\]\)*)(\<\/span\>)/gi,'$1$3$2');

  str = str.replace(/(This drive was organized by \[\[User:GrooveDog\|GrooveDog\]\] in an attempt to terminate that nasty backlog\.)\<\/sup\>\<\/font\>\./gi,'$1');
  str = str.replace(/(GrooveDog)\<\/sup\>\<\/font\>\./gi,'$1');

  str = str.replace(/(\"\>\'\'\'W\'\'\'eb)\'\'\'(\<\/)/gi,'$1$2');

  str = str.replace(/(\(\[\[User talk:Alinnisawest\|\<font color\=\"#cf0021\"\>\'\'\'extermination requests here)(\]\])(\'\'\'\<\/font\>)/gi,'$1$3$2');

  str = str.replace(/(\|\<font color\=\"\#66666\"\>\<sup\>Pacific\<\/sup\>)(\]\] *\[\[Special:Contributions\/Yellow Evan\|\<sup\>Hurricane\<\/sup\>)(\<\/font\>)(\]\])/gi,'$1$3$2$4');
  
  str = str.replace(/(\'\'\'\'\')(\<span style\=\"font\-family:Georgia,arial\"\>)(Vic Vipr\'\'\'\'\' \<small\>\<sup\>\[\[User_talk:Vic_Vipr\|\'\'T\'\'\]\]\<\/sup\>\<sub\>\[\[Special:Contributions\/Vic_Vipr\|\'\'C\'\'\]\]\<\/sub\>\<\/small\>\<\/span\>)/gi,'$2$1$3');

  str = str.replace(/(\|\'\'\'\<span style\=\"color:FireBrick;\"\>Nolelover)(\'\'\')(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\|\'\'\'\<span style\=\"color:Gold\"\>\<sup\>[a-z \'\!]+\<\/sup\>)(\'\'\')(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\[\[User talk:Nolelover\|\'\'\'<span style="font size 15;border:#AAAACC 2px inset;color:maroon;background:Gold">lover)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4');
 
  str = str.replace(/(>Experiment)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(>Ford)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\|\'\'\'<span style="background:Black;color:gold">E)(\'\'\')(<\/span>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\|\'\'\'\<span style\=\"color:RGB\(0,71,171\)\"\>Shores)(\'\'\')(\<\/span\>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\|\'\'\'\<span style\=\"color:blue;font\-family:Times New Roman;font\-size:80%;\"\>SLAM)(\'\'\')(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\|\'\'\'\<span style\=\"color:darkBlue\"\>Slam)(\'\'\')(\<\/span\>)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\|)(\<span style\=\"color:red;"\>)(\'\'\')(Aaron\<\/span\> \<span style\=\"color:blue;\"\>north\<\/span\>\'\'\'\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User:Optimist on the run\|\'\'\'\<span style\=\"color:#A00000\"\>optimist)(\'\'\')(\<\/span\>)(\]\] on the \[\[User Talk:Optimist on the run\|\'\'\<span style\=\"color:#00A000\"\>run\!)(\'\')(\<\/span\>)(\]\])/gi,'$1$3$2$4$6$5$7');
  str = str.replace(/(\[\[User:[a-z ]+\|\'\'\'\<span style\=\"color:#A00000\"\>optimist)(\'\'\')(\<\/span\>)(\]\])/gi,'$1$3$2$4');
  str = str.replace(/(\[\[User Talk:Optimist on the run\|\'\'\<span style\=\"color:#00A000\"\>run! *)(\'\')(\<\/span\> *)(\]\])/gi,'$1$3$2$4');

  str = str.replace(/(\[\[User:Arman Cagle\|)\<font color\=\"191970\"\>(\'\'\'Arman Cagle\'\'\')\]\]\<\/font\>/gi,'$1\<span style\=\"color:#191970\"\>$2\<\/span\>\]\]');

  str = str.replace(/(\<sup\>\[\[User talk:Djathinkimacowboy\|\<[fontspan]+ style\=\"color:#00013F*;*\"\>[\'a-z\?\! ]+\<\/[fontspan]+\>)(\<\/sup\>)(\]\])/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Saedon\|\<font color\=\"#000000\"\>S\<strong\>Æ\<\/strong\>don)(\]\]\<sup\>\[\[User talk:Saedon\|talk\]\]\<\/sup\>)(\<\/font\>)/gi,'$1$3$2');

  str = str.replace(/(\[\[User:Saedon\|\<font color\=\"#000000\"\>Sædon)(\]\]\<sup\>\[\[User talk:Saedon\|talk\]\]\<\/sup\>)(\<\/font\>)/gi,'$1$3$2');


  str = str.replace(/\>\'\'\'\<big\>Zac\'\'\' \<\/big\>/gi,'\>\'\'\'\<big\>Zac \<\/big\>\'\'\'');

  str = str.replace(/(monde ♥)(\]\])(\<\/font\>\<\/b\>\<\/span\>)/gi,'$1$3$2');

  str = str.replace(/\<span style\=\"background:#00CCCC\"\>\'\'\'\[\[User:Adabow\|\<font face\=\"tempus sans itc\" color\=\"#FF0000\"\>Adabow\]\]\<\/font\>\<\/span\>\<span style\=\"background:#FF6666\"\>\<font face\=\"monospace\" color\=\"#330099\"\>\<small\>\(\[\[User talk:Adabow\|complain\]\]\)\'\'\'\<\/small\>\<\/font\>\<\/span\>/gi,'\'\'\'\<span style\=\"background:#00CCCC\"\>\[\[User:Adabow\|\<font face\=\"tempus sans itc\" color\=\"#FF0000\"\>Adabow\<\/font\>\]\]\<\/span\>\<span style\=\"background:#FF6666\"\>\<small\>\(\[\[User talk:Adabow\|\<font face\=\"monospace\" color\=\"#330099\"\>complain\<\/font\>\]\]\)\<\/small\>\<\/span\>\'\'\'');

  str = str.replace(/\>\'\'\'\&nbsp;\'\'\'Glenfarclas\'\'\'\&nbsp;\<\/span\>\]\]\'\'\'/gi,'\>\&nbsp;\'\'\'Glenfarclas\'\'\'\&nbsp;\<\/span\>\]\]');

  str = str.replace(/(\[\[User_talk:IMatthew\|\<span style\=\"font\-family:Century Gothic;color:#007BA7\"\>\<sup\>talk\<\/sup\>)\]\]/gi,'$1\<\/span\>\]\]');
  str = str.replace(/(\[\[User:iMatthew\|<span style="color:[#\da-z]+">iMa)(<span style="color:[#\da-z]+">tth)(<span style="color:[#\da-z]+">ew<\/span>\]\])/gi,'$1<\/span>$2<\/span>$3');
  str = str.replace(/(<sub>\[\[User talk:IMatthew\|<span style="color:red">T\.)(\]\]\[\[Special:Contributions\/iMatthew\|<span style="color:blue">C\.)(\]\]<\/sub>)/gi,'$1<\/span>$2<\/span>$3');
  str = str.replace(/(<font face="cursive">\'\'\'\[\[User:IMatthew\|<span style="color:#007BA7">iMatthew<\/span>\]\] \/\/ \[\[User talk:IMatthew\|<span style="color:#960018">talk<\/span>\]\]\'\'\' \/\/ )<\/span>(<\/font>) /gi,'$1$2');
  str = str.replace(/(\'\'\'\[\[User:IMatthew\|<span style="color:#960018">aye<\/span>\]\]\[\[User talk:IMatthew\|<span style="color:#007BA7">matthew<\/span>\]\]\'\'\')<\/span>/gi,'$1');

  str = str.replace(/\[\[User:Zenlax\|\<font\scolor\=\"ForestGreen\"\>\'\'\'\'\'Z\'\'\'\'\'\<small\>enlax\<\/small\>\'\'\'\<\/font\>\]\]/gi,'\[\[User:Zenlax\|\<span style\=\"color:ForestGreen\"\>\'\'\'\'\'Z\'\'\'\'\'\<small\>enlax\<\/small\>\<\/span\>\]\]');

  str = str.replace(/(\'\'\')(\<font face\=jokerman\>)(\[\[User:Feedback\|\<span style\=\"color:DarkBlue;\"\>\'\'Lex\'\'\<\/span\>\]\]\'\'\' )/gi,'$2$1$3');

  str = str.replace(/\[\[User:Sting_au\|\<b\>\<font color\=\"green\"\>Sting_au\]\]  \[\[User talk:Sting_au\|\<\/font\>\<font color\=\"gold\"\>Talk\]\]\<\/font\>\<\/b\>/gi,'\<b\>\[\[User:Sting_au\|\<font color\=\"green\"\>Sting_au\<\/font\>\]\]  \[\[User talk:Sting_au\|\<font color\=\"gold\"\>Talk\<\/font\>\]\]\<\/b\>');


  str = str.replace(/\<font( style\=\"font\-family:sans\-serif;color:black;\"\> \<span style\=\"text\-shadow:#0099cc 0\.12em 0\.12em 0\.12em; class\=texhtml\"\> +\'\'\'\'\'\[\[User:Sharktopus\|Sharktopus\]\]\'\'\'\'\'\<\/span\> \[\[user talk: Sharktopus\|\<sup\>talk\<\/sup\>)\<\/font\>\]\]/gi,'\<span$1\]\]\<\/span\>');

  str = str.replace(/(\<span style\=\"color:orange;font\-family:Calibri\"\>C\<)(span\>)/gi,'$1\/$2');

  str = str.replace(/(\<span style\=\"font\-family:Trebuchet MS\"\>)\'\'(\<span style\=\"color:#[a-z\d]+;\"\>)\'\'(\~)\'\'(\<\/span\>\'\'\')\'\'/gi,'$1$2$3$4');

  str = str.replace(/(LOTRrules\|\'\'\'\<span style\=\"color:[a-z]+;\"\>)\'\'\'(Contribs)\'\'\'(\<\/span\>\'\'\'\]\])/gi,'$1$2$3');

  str = str.replace(/(\'\'\'\'\')\<span style\=\"font\-size:medium;\"\>\<\/font\>(\[\[User:SRX.*\]\]\'\'\')\'\'/gi,'$1$2');

  str = str.replace(/(\<span style\=\"color:\#009933;\"\>name)(\<\/sup\>)(\<\/span\>)/gi,'$1$3$2');

  str = str.replace(/(\<span style\=\"font\-family\:Lucida Grande;\"\>)( \[\[User\:Neko\-chan\|)(neko\-chan \<\/span\>)/gi,'$2$1$3');
  str = str.replace(/(\<span style\=\"font\-family\:Helvetica;\"\>)( \[\[User\:Neko\-chan\|)(neko\-chan \<\/span\>)/gi,'$2$1$3');
  str = str.replace(/(\<font face\=\"Helvetica\"\>)( \[\[User:Neko-chan\|)(neko\-chan \<\/font\>:3\]\])/gi,'$2$1$3');
  str = str.replace(/(\<font face\=\"Lucida Grande\"\>)( \[\[User\:Neko\-chan\|)(neko\-chan \<\/font\>)/gi,'$2$1$3');

  str = str.replace(/\[\[User:Kunalforyou\|\<big\>\<span style\=\"color:Navy;\"\>\'\'\'\'\'Kunal\'\'\<\/span\>\<\/big\>\<span style\=\"color:violet;\"\>For\<\/span\>\<span style\=\"color:\#00B7EB;\"\>\'\'\'You\'\'\'\<\/span\>\<\/big\>\<\/span\>\]\]\[\[Special:Contributions\/Kunalforyou\|\<sup\>\<span style\=\"color:Red;\"\>Contribs\<\/span\>\<\/sup\>\]\]\[\[User_talk:Kunalforyou\|\<sup\>\<span style\=\"color:\#ffffff;background:green;\"\>\'\'\'Talk\'\'\'\<\/span\>\<\/big\>\<\/sup\>\]\]/gi,'\[\[User:Kunalforyou\|\'\'\'\<big\>\<span style\=\"color:Navy;\"\>\'\'Kunal\'\'\<\/span\>\<\/big\>\<span style\=\"color:violet;\"\>For\<\/span\>\'\'\'\<span style\=\"color:\#00B7EB;\"\>You\<\/span\>\]\]\[\[Special:Contributions\/Kunalforyou\|\<sup\>\<span style\=\"color:Red;\"\>Contribs\<\/span\>\<\/sup\>\]\]\[\[User_talk:Kunalforyou\|\<sup\>\<span style\=\"color:\#ffffff;background:green;\"\>\'\'\'Talk\'\'\'\<\/span\>\<\/sup\>\]\]');

  str = str.replace(/\'\'\'\'\'\<span style=\"font\-size:medium;\"\>\<\/font\>\[\[User:SRX\|\<span style\=\"color:black;\"\>S\<\/span\>\<\/span\>\<span style\=\"color:orange;\"\>R\<\/span\>\<span style\=\"color:black;\"\>X\<\/span\>\<\/font\>\]\]\'\'\'\<sup\>\-\-\<\/sup\>\'\'\'\'\'\[\[User talk:SRX\|\<small\>\<sup\>\<span style\=\"color:orange;\"\>Latino\<\/span\>\<\/sup\>\<\/small\>\]\]\[\[User:SRX\/Guestbook\|\<small\>\<span style\=\"color:green;\"\>Heat\<\/span\>\<\/small\>\]\]\'\'\'\'\'/gi,'\<span style\=\"font-size:medium;\"\>\'\'\'\'\'\[\[User:SRX\|\<span style\=\"color:black;\"\>S\<\/span\>\<span style\=\"color:orange;\"\>R\<\/span\>\<span style\=\"color:black;\"\>X\<\/span\>\]\]\'\'\'\<sup\>\-\-\<\/sup\>\'\'\'\'\'\[\[User talk:SRX\|\<small\>\<sup\>\<span style\=\"color:orange;\"\>Latino\<\/span\>\<\/sup\>\<\/small\>\]\]\[\[User:SRX\/Guestbook\|\<small\>\<span style\=\"color:green;\"\>Heat\<\/span\>\<\/small\>\]\]\'\'\'\<\/span\>');

  str = str.replace(/(\[\[User:Spinningspark\|<)font( style="background:#*[a-z\d]+;color:#*[a-z\d]+">)\'\'\'(Sp<)font( style="background:#*[a-z\d]+;color:#*[a-z\d]+">in<)font( style="color:#*[a-z\d]+">ni)<\/font><\/font><font( style="color:#*[a-z\d]+">ng)<\/font><\/font><font( style="color:#*[a-z\d]+">Spark)\'\'\'<\/font>\]\]/gi, '\'\'\'$1span$2$3span$4span$5<\/span><\/span><span$6<\/span><\/span><span$7<\/span>\]\]\'\'\'');
  str = str.replace(/(\'\'\'\[\[User:Spinningspark\|<span style="background:#fafad2;color:#C08000">Spinning<\/span>\]\]\[\[User talk:Spinningspark\|<span style="color:#4840a0">Spark)\'\'\'(<\/span>\]\]\'\'\')/gi, '$1$2');

  str = str.replace(/\[\[User:Violetnese\|\<font style\=\"color:\#cc99ff; background-color:darkorchid\"\>violet\]\]\<\/font\>/gi, '\[\[User:Violetnese\|\<span style\=\"color:\#cc99ff; background-color:darkorchid\"\>violet\<\/span\>\]\]');

  str = str.replace(/(<sup>''\[\[User talk:A Train\|talk\]\])(\<\/sup\>)/gi, '$1\'\'$2');

  str = str.replace(/\<font color\=\"002bb8\"\>Lugnuts\<\/font\>/gi, '\<span style\=\"color:\#002bb8\;\"\>Lugnuts\<\/span\>');

  str = str.replace(/\<font color\=\"red\"\>\[\[User :ACBest\|AC\]\]\<\/font\>\<font color\=\"gold\"\>\[\[User talk:ACBest\/Main\|Best\]\]\<\/font\>\<font color\=\"blue\"\>\[\[Special:Contributions\/ACBest\|My Contributions\]\]\<\/font\>/gi, '\[\[User:ACBest\|\<span style\=\"color:red;\">AC\<\/span\>\]\]\[\[User talk:ACBest\/Main\|\<span style\=\"color:gold;\"\>Best\<\/span\>\]\]\[\[Special:Contributions\/ACBest\|\<span style\=\"color:blue;\"\>My Contributions\<\/span\>\]\]');

  str = str.replace(/\<font face\=\"Papyrus\" color\=\"darkblue\"\>\<b\>Poeticbent\<\/b\>\<\/font\>/gi, '\<span style\=\"font\-family:\'Papyrus\'\; color:darkblue\;\"\>\<b\>Poeticbent\<\/b\>\<\/span\>');

  str = str.replace(/(\<i\>\<b\>—\&nbsp;\[\[User:Gadget850\|)<font color \= \"gray\"\>(Gadget850\&nbsp\;\(Ed\))\<\/font\>(\]\])\<font color \= \"darkblue\"\>(\&nbsp\;\<sup\>\[\[User talk:Gadget850\|)(\'\'talk\'\')(\]\]\<\/sup\>)\<\/font\>(\<\/b\> \- \<\/i\>)/gi, '$1\<span style\=\"color:gray\;\"\>$2\<\/span\>$3$4\<span style\=\"color:darkblue\;\"\>$5\<\/span\>$6$7');

  str = str.replace(/(\[\[Special\:Contributions\/SNUGGUMS\|\<b style\=\"color\:\#454545\"\>edits)(\]\])\)(\<\/b\>)/gi, '$1\)$3$2');
  str = str.replace(/(\[\[Special\:Contributions\/SNUGGUMS\|\<b style\=\"color\:\#454545\"\>edits\))(\]\])(\<\/b\>)/gi, '$1$3$2');

  str = str.replace(/(\[\[User[ talk]+:[a-z\. ]*Blofeld[a-z\. ]*\| *<span style="border:1px solid blue;padding:1px;)"> <[spanfont]+ style="(color:#fef;background:black;">\'+♦* *[a-z\.]+ Blofeld *♦*\'+)<\/[spanfont]+>(\]\])(<\/span>)/gi, '$1$2$4$3');
  str = str.replace(/<font color="black"><u>Talk to me<\/u><\/font>/gi, '<span style="color:black;"><u>Talk to me<\/u><\/span>');
  str = str.replace(/<font size="-2">1000<\/font>/gi, '<span style="font-size:smaller">1000<\/span>');
  str = str.replace(/(\[\[User:[a-z ]+\| <span style="border:1px solid blue;padding:1px;)"> <font style="(color:#fef;background:[a-z ]+;">\'\'\'\'\'♦ Sir Blofeld ♦\'\'\'\'\')<\/font>(\]\])(<\/span>)/gi,'$1$2$4$3');
  str = str.replace(/<font size="\-4"><font color="Black">(\'\'\'\$1,000,000\?\'\'\')<\/font><\/font[ colr]+>/gi,'<small style="color:black">$1<\/small>');
  str = str.replace(/<font size="\-4"><font color="([a-z]+)">(\'\'\'"*Talk"*\?\'\'\')<\/font><\/font[ colr]+>/gi,'<small style="color:$1">$2<\/small>');
  str = str.replace(/(\[\[User:Blofeld of SPECTRE\| <span style="border:1px solid blue;padding:1px;"> <span style="color:#fef;background:black;">\'\'\'\'\'The Bald One\'\'\'\'\'<\/span>)(\]\])(<\/span>)/gi, '$1$3$2');
  str = str.replace(/(\| <span style="border:1px solid blue;padding:1px;"> <span style="color:#fef;background:black;">\'\'\'\'\'[a-z ♦\.]+\'\'\'\'\'<\/span>)(\]\])(<\/span>)/gi, '$1$3$2');
  str = str.replace(/(\| <span style="border:1px solid blue;padding:1px;"> <span style="color:#fef;background:navy;">\'\'\'\'\'Ernst Stavro Blofeld\'\'\'\'\'<\/span>)(\]\])(<\/span>)/gi, '$1$3$2');


  str = str.replace(/<font color=orange>\[\[User:GreatOrangePumpkin\|♫GoP♫\]\]<\/font>/gi, '\[\[User:GreatOrangePumpkin\|<span style="color:orange;">♫GoP♫<\/span>\]\]');

  str = str.replace(/<span style=font\-family: \'Comic Sans MS\'><font color=#C1CDC1>\[\[User:GreatOrangePumpkin\|GoP\]\]<\/font><\/span><sub>\[\[User talk:GreatOrangePumpkin\|<font color=#8EE5EE>T<\/font>\]\]<\/sub><sup>\[\[Special:Contributions\/GreatOrangePumpkin\|<font color=#8EE5EE>C<\/font>\]\]<\/sup><sub>\[\[Special:NewPages\|<font color=#8EE5EE>N<\/font>\]\]<\/sup>/gi, '<span style=font\-family: "Comic Sans MS">\[\[User:GreatOrangePumpkin\|<span style="color:#C1CDC1;">GoP<\/span>\]\]<\/span><sub>\[\[User talk:GreatOrangePumpkin\|<span style="color:#8EE5EE;">T<\/span>\]\]<\/sub><sup>\[\[Special:Contributions\/GreatOrangePumpkin\|<span style="color:#8EE5EE;">C<\/span>\]\]<\/sup><sub>\[\[Special:NewPages\|<span style="color:#8EE5EE;">N<\/span>\]\]<\/sub>');

  str = str.replace(/<font color="Teal" face="Tahoma">\'\'\'HJ\&nbsp;Mitchell\'\'\'<\/font>/gi, '<span style="font-family:\'Tahoma\'; color:Teal;">\'\'\'HJ\&nbsp;Mitchell\'\'\'<\/span>');
  str = str.replace(/<font color="Navy" face= "Times New Roman">Penny for your thoughts\? <\/font>/gi, '<span style="font-family:\'Times New Roman\'; color:Navy;">Penny for your thoughts\? <\/span>');

  str = str.replace(/<font color="gold" face="papyrus">\[\[User talk:Syfuel\|<sup>\'\'\'Ignite\'\'\'<\/sup>\]\]<\/font><font color="black" face="papyrus">\[\[Special:Contributions\/Syfuel\|<sub>\'\'\'Burned\'\'\'<\/sub>\]\]<\/font>/gi, '\[\[User talk:Syfuel\|<span style="font-family:\'papyrus\'; color:gold"><sup>\'\'\'Ignite\'\'\'<\/sup><\/span>\]\]\[\[Special:Contributions\/Syfuel\|<span style="font-family:\'papyrus\'; color:black"><sub>\'\'\'Burned\'\'\'<\/sub><\/span>\]\]');

  str = str.replace(/<font color="FF9999" face="Tunga">\[\[User talk:Bobamnertiopsis\|ChatMe!\]\]<\/font>/gi, '\[\[User talk:Bobamnertiopsis\|<span style="font-family:\'Tunga\'; color:#FF9999;">ChatMe!<\/span>\]\]');

  str = str.replace(/<font size="4.7" face="Brush Script MT" color="#083884">\[\[User:Bluesphere\|Blue\]\]<\/font><font size="4.7" face="Brush Script MT" color="#083884">\[\[User talk:Bluesphere\|sphere\]\]<\/font>/gi, '\[\[User:Bluesphere\|<span style="font-size:large; font-family:\'Brush Script MT\'; color:#083884;">Blue<\/span>\]\]\[\[User talk:Bluesphere\|<span style="font-size:large; font-family:\'Brush Script MT\'; color:#083884;">sphere<\/span>\]\]');

  str = str.replace(/<font size="4.7" face="vivaldi" color="#083884">\[\[User:Bluesphere\|Blue\]\]\'\'\'<\/font>\'\'\'<font size="4.5" face="vivaldi" color="#083884">\[\[User talk:Bluesphere\|sphere\]\]<\/font>/gi, '\[\[User:Bluesphere\|<span style="font-size:large; font-family:\'vivaldi\'; color:#083884;">Blue<\/span>\]\]\[\[User talk:Bluesphere\|<span style="font-size:large; font-family:\'vivaldi\'; color:#083884;">sphere<\/span>\]\]');

  str = str.replace(/<font color="207004"><big>\'\'\'S<\/big>ven[&nbsp;]*<big>M<\/big>anguard\'\'\'<\/font>/gi, '<span style="color:#207004;">\'\'\'<big>S<\/big>ven&nbsp;<big>M<\/big>anguard\'\'\'<\/span>');
  str = str.replace(/<font color="207004"><big>\'\'\'S<\/big>ven <big>M<\/big>anguard\'\'\'<\/font>/gi, '<span style="color:#207004;">\'\'\'<big>S<\/big>ven <big>M<\/big>anguard\'\'\'<\/span>');
  str = str.replace(/(\[\[User[ talk]*:Sven Manguard\|<span style="color:#207004;">)(<big>)(\'\'\')(S<\/big>ven <big>M<\/big>anguard\'\'\'<\/span>\]\])/gi, '$1$3$2$4');


  str = str.replace(/(<span style="border:2.5px solid black;padding:1px;)(">)(\[\[User:MrScorch6200\|)<font( style="color:Navy;)(background:cyan;)">(\'\'\'MrScorch6200\'\'\')(\]\] \(\[\[User talk:MrScorch6200\|talk\]\] &#124; \[\[Special:Contributions\/MrScorch6200\|ctrb\]\]\))<\/font>(<\/span>)/gi, '$1$5$2$3<span$4$2$6$8$7$8');

  str = str.replace(/\'\'\'<font color="titanic" face="book antiqua" size="2">\[\[User:Brambleberry of RiverClan\|Brambleberry\]\]\'\'\' <sup>\'\'\' ☾\[\[User talk:Brambleberry of RiverClan\|of RC\]\]☽\'\'\'<\/sup><\/font>/gi, '<span style="color:titanic; font-family:\'book antiqua\'; font-size:small;">\'\'\'\[\[User:Brambleberry of RiverClan\|Brambleberry\]\]\'\'\' <sup>\'\'\' ☾\[\[User talk:Brambleberry of RiverClan\|of RC\]\]☽\'\'\'<\/sup><\/span>');

  str = str.replace(/<font color="#151B8D">\'\'\'\[\[User:Rcsprinter123\|<span style="font\-family:cambria; font\-size:10pt; color:#151B8D">Rcsprinter<\/span>\]\] <\/font><font color="#151B8D"> \'\'\'/gi, '<font color="#151B8D">\'\'\'\[\[User:Rcsprinter123\|<span style="font\-family:cambria; font\-size:10pt; color:#151B8D">Rcsprinter<\/span>\]\] \'\'\' <\/font><font color="#151B8D"> ');

  //Links in links - common uses
  str = str.replace(/box score from \[\[Retrosheet\]\]\]/gi, 'box score from Retrosheet\]');
  str = str.replace(/( \{\{PD\-notice\}\})(\])/gi, '$2$1');
  str = str.replace(/(\'\')( \[\[Society for American Baseball Research\]\] Biography Project)(\])/gi, '$1$3$2');
  str = str.replace(/(")( \[\[Society for American Baseball Research\]\] Biography Project)(\])/gi, '$1$3$2');
  str = str.replace(/(\'\')( \[\[Society for American Baseball Research\|SABR\]\] Biography Project)(\])/gi, '$1$3$2');
  str = str.replace(/ *(\{\{dead link *\| *date *\= *[a-zA-Z]+ 20[12][0-9]\}\})(\])/gi, '$2$1');
  str = str.replace(/(\[https:\/\/w.wiki\/6sWQ Where were the borders crossing between)( {{Q\|Q16957}} and {{Q\|Q713750}} \?)]/gi, '$1\]$2');

  //Fix linter problems
  //str = str.replace(/([aeious\)]\')(\<small\>)(\' )/gi, '$1$3$2'); //for a batch of species articles
  str = str.replace(/Uncredited\<center\>\<small\>/gi, 'Uncredited\<\/center\>\<\/small\>'); //for filmographies edited by a pesky IP editor
  str = str.replace(/(\<center\>\{\{[a-z ]+\}\})\<center\>/gi, '$1\<\/center\>'); //for filmographies edited by a pesky IP editor

  str = str.replace(/\<b\>\<u\>all\<u\>\<b\>/gi, '\<b\>\<u\>all\<\/u\>\<\/b\>');
  str = str.replace(/\| *\'\'\'\'\'\'\'\'\'\'/gi, '\| \'\'\'\'\'\  \'\'\'\'\'');
  str = str.replace(/\| *\'\'\'\'\'\'/gi, '\| \'\'\'\  \'\'\'');
  str = str.replace(/\| *\'\'\'\'\' *\|/gi, '\| \'\'\'\  \'\'\' \|'); //five marks in a cell is an error; assuming that six are meant
  str = str.replace(/(\'\'\'\{\{\#if\:\{\{\{1\|\}\}\}\|\{\{\{1\}\}\})\'\'\' times *\| \}\}/gi, '$1 times\| \}\}\  \'\'\'');
  str = str.replace(/\<small\>\<center\>([\d\-\–\'a-z \[\]\(\)\|\?\.\;\"\+]+\<\/small\>\<\/center\>)/gi, '\<center\>\<small\>$1');
  str = str.replace(/(\'\'\'[\d\,\-–:\.%]+) *\|\|/gi, '$1\'\'\' \|\|');
  str = str.replace(/(\'\'[\d\,\-–:\.%]+) *\|\|/gi, '$1\'\' \|\|');

  //Philippine ship articles
  str = str.replace(/(\> *\'\'Shipbuildinghistory\.com) *\[/g, '$1\'\' \[');
  str = str.replace(/(\> *\'\'GlobalSecurity\.org) *\[/g, '$1\'\' \[');
  str = str.replace(/(\> *\'\'Manokski\'s ORBAT \@ Hueybravo\.*) *\[/g, '$1\'\' \[');
  str = str.replace(/(\> *\'\'AFP Materiel Technical Specification Archives \- PN Light Surface Warships) *\[/g, '$1\'\' \[');
  str = str.replace(/(\> *\'\'Naval Technology) *\[/g, '$1\'\' \[');

  //Conan book s-ttl templates
  str = str.replace(/({{s\-ttl\|title=.*Conan.*<br>\'\'\')<small>(\([a-z #\|\[\]]+\))<\/small>(}})/gi, '$1$2\'\'\'$3');
  str = str.replace(/({{s\-ttl\|title=.*Canon.*<br>\'\'\')<small>(\([a-z #\|\[\]]+\))<\/small>(}})/gi, '$1$2\'\'\'$3');

  //Empty headers
  str = str.replace(/(==)[&nbsp;]+(\[\[File:Happy Holidays text\.png\|237px\|Happy holidays\]\]==)/gi, '$1Happy Holidays $2');

  //Women in Red and NYC and similar newsletters

  str = str.replace(/(collaboration"\]\]\'\'\' page\.)(\n\|} \-\-\-\[\[User:Another Believer)/gmi, '$1<\/div>$2');

  str = str.replace(/(<center><big>The \[\[Wikipedia:WikiProject NASCAR\|<span style="font\-family:;color: black">WikiProject NASCAR<\/span>\]\]\'\'\' \[\[Wikipedia:WikiProject NASCAR\/Newsletter\|<span style="font\-family:;color: black"> Newsletter<\/span>\]\]\'\'\'<\/big><br\/>)<center>(Volume)/gi, '$1$2');

  str = str.replace(/(<big>)\n(\'\'\'\[\[Wikipedia:WikiProject Good articles\/Newsletter\|The WikiProject Good articles Newsletter\]\]\'\'\'<\/big>)/gmi, '$1$2');

  str = str.replace(/(\'\'\'To change your subscription, or to subscribe click \[\[Wikipedia talk:TheWikiWizard\/Distribution\|Here\]\]\.)(\n)/gmi, '$1\'\'\'$2');

  str = str.replace(/<div><small><\/small>(<\/div>\n\|}<!\-\- User:Tigraan\-testbot)/gmi, '$1');
  str = str.replace(/<small><\/small><\/div>\n(<\/div> *\n\|}<!\-\- User:Tigraan\-testbot)/gmi, '$1');
  str = str.replace(/<div>(<\/div>\n\|}<!\-\- User:Tigraan\-testbot)/gmi, '$1');

  str = str.replace(/(<small>Sent to all Articles for Creation reviewers as a one\-time notice\. To opt\-out of all \[\[Wikipedia:Mass message senders\|massmessage mailings\]\], you may add \[\[:Category:Wikipedians who opt out of message delivery\]\] to your user talk page\. Regards, {{no ping\|Sam\-2727}} \(\[\[User talk:Sam\-2727\|talk\]\]\))\n(<\/small><\/div>)/gmi, '$1$2');

  str = str.replace(/([789] June 2014 \(UTC\))<\/div>(<!\-\-Template:Afc decline\-\-><\/div>)/gi, '$1$2');
  str = str.replace(/(\d\d June 2014 \(UTC\))<\/div>(<!\-\-Template:Afc decline\-\-><\/div>)/gi, '$1$2');
  str = str.replace(/(\d+ July 2014 \(UTC\))<\/div>(<!\-\-Template:Afc decline\-\-><\/div>)/gi, '$1$2');
  str = str.replace(/(\d+ August 2014 \(UTC\))<\/div>(<!\-\-Template:Afc decline\-\-><\/div>)/gi, '$1$2');
  str = str.replace(/(\d+ September 2014 \(UTC\))<\/div>(<!\-\-Template:Afc decline\-\-><\/div>)/gi, '$1$2');
  str = str.replace(/(1*\d October 2014 \(UTC\))<\/div>(<!\-\-Template:Afc decline\-\-><\/div>)/gi, '$1$2');
  str = str.replace(/(\'\'\'New draftify script\'\'\': In response to feedback from AFC, the The Move to Draft script now provides a choice of set messages that also link the creator to a new, friendly \[\[Help:Unreviewed new page\|explanation page\]\]\. The script also warns reviewers if the creator is probably still developing the article. The former script is no longer maintained\. Please edit your edit your \[\[Special:MyPage\/common\.js\|common\.js\]\] or vector\.js file from <code>User:Evad37\/MoveToDraft\.js<\/code> to <code>User:MPGuy2824\/MoveToDraft\.js<\/code>)\'\'\'/gmi, '$1');
  str = str.replace(/(<small>\(To subscribe: \[\[Wikipedia:Meetup\/Women in Red\/Invite\/List\|Women in Red\/English language mailing list\]\][a-z: \[\]\/\|\.]+Unsubscribe: \[\[Wikipedia:Meetup\/Women in Red\/Invite\/Opt\-out\|Women in Red\/Opt\-out list\]\]\) *)(\n)/gmi, '$1<\/small>$2');
  str = str.replace(/(\'\'\'\'\'Happy Holidays from all of us at \[\[:en:Wikipedia:WikiProject Women in Red\|Women in Red\]\], and thank you for your support in 2019\. We look forward to working with you in 2020!\'\'\')(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(<p>For more [a-z ]+, read \[\[Wikipedia:VisualEditor[a-z #\|\'\/]+\]\]\.)(}})/gi, '$1<\/p>$2');
  str = str.replace(/(<p>To add templates, [a-z \.{}:\-\"\(\)\[\]\|,]+, use numbers \("1" for the first unnamed parameter\)\.)(}})/gi, '$1<\/p>$2');
  str = str.replace(/(<p>[a-z \.{}:\-\"\(\),]+ read \[\[[:mwWikipedia]*:VisualEditor[a-z #\|\'\/,]+\]\] for more information\.)(}})/gi, '$1<\/p>$2');
  str = str.replace(/(^<p>The last two are used to increase or decrease the indentation level\.  This can also be done from the keyboard, by using {{Key press\|Tab}} to indent the list and {{Key press\|Shift\|Tab}} to outdent it\.)(\n<p>)/gmi, '$1<\/p>$2');

//<p> You can also set or remove categories for the redirect in the "{{int:visualeditor-pagemenu-tooltip}}" menu. Read [[:mw:VisualEditor/User guide|the user guide]] for more information.}}

//<p>The template dialog has been simplified to make it faster and easier to add parameter data.  Read [[Wikipedia:VisualEditor/User guide|the user guide]] for more information.}}

//<p>You can easily re-use references by going to the Insert menu, choosing "Reference", and clicking on "Use an existing reference" in the lower left corner.  A list of all references, their numbers, and their ref names (if any) will be shown.  You can search the list for any author, title, date, or other keyword.  Read [[Wikipedia:VisualEditor/User guide#Adding an existing reference to a new place|the user guide]] for more information.}}

//<p>To add templates, go to the "Insert" menu and choose the "Transclusion" (puzzle piece) item.  Enter the name of the template and click "Add template".  If [[Wikipedia:TemplateData|TemplateData]] exists for the template, then a list of possible parameters will appear.  If not, you can add parameters yourself by typing the  parameter name under "Add parameter".  For unnamed parameters, use numbers ("1" for the first unnamed parameter).}}

  str = str.replace(/<\/nowiki><tt>URL of source<\/tt>}}\.<p>/gi, '<\/nowiki><kbd>URL of source<\/kbd>}}\.</p><p>');

//<p>The last two are used to increase or decrease the indentation level.  This can also be done from the keyboard, by using {{Key press|Tab}} to indent the list and {{Key press|Shift|Tab}} to outdent it.

  str = str.replace(/^<big>(\[\[Wikipedia:WikiProject_Women.*\]\]<br *\/>\n)/gmi, '$1');
  str = str.replace(/^<big><big>(\[\[Wikipedia:WikiProject Women.*\]\]<br *\/>\n)/gmi, '$1');
  str = str.replace(/^<big><big>(\[\[Wikipedia:Meetup\/Women.*\]\][ \-]*<br *\/>\n)/gmi, '$1');
  str = str.replace(/^(\*[\da-z \-–,]+ \d\d\d\d)<\/big><\/big>(\n)/gmi, '$1$2');
  str = str.replace(/^(\*[\da-z \-–,]+ \d\d\d\d)<\/big>(\n)/gmi, '$1$2');
  str = str.replace(/^(\'\'Our next event: \[\[Wikipedia:WikiProject Women.*\'\'\'\]\])(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\'\'[a-z ]+ for your[ many]* contributions\'\' *)\n\'\'(<br \/>\n[Almost ]*\d+ new articles)/gmi, '$1$2');
  str = str.replace(/^<big>[<br>]*\n+(\*\'\'\'\[\[w:en:Wikipedia:WikiProject Women in Red\/Meetup\/[\d\d].*\]\])/gmi, '$1');
  str = str.replace(/^(\*\'\'\'\[\[w:en:Wikipedia:WikiProject Women in Red\/Meetup\/[\d\d]+\|.*\]\]\'\'\')<\/big>/gmi, '$1');
  str = str.replace(/(<big>)\n(Welcome to \[\[Wikipedia:WikiProject Women in Red\|Women in Red\'s\]\]<br \/>)\n([a-z]+ 2017 worldwide online editathons\.<br \/>)\n(Participation is welcome in any language\.<\/big>)/gmi, '$1$2$3$4');
  str = str.replace(/<center>(\'\'\'World Virtual Edit\-a\-thon on Women in Leadership\'\'\'<br>)\n(\'\'\'Dates\'\'\': 7 to 20 September 2015 )<\/center>/gmi, '{{center\|1=$1$2}}');
  str = str.replace(/^(\'\'\'\'\'Happy Women\'s History Month from all of us at \[\[:en:Wikipedia:WikiProject Women in Red\|Women in Red\]\]\.\'\'\')(\n)/gmi, '$1\'\'$2');
  str = str.replace(/<tt>({{tl)(\|User WikiProject Oregon}})<\/tt>/gi, '$1x$2');

  str = str.replace(/(Affiliations Committee\/News\|subscribe\/unsubscribe\]\])(<section)/gi, '$1<\/div>$2');

  str = str.replace(/<center>(<small>\'\'Ichthus\'\' is published.*\(UTC\)<\/small>)<\/center>/gi, '{{center\|1=$1}}');
  str = str.replace(/<center>(<small>\'\'Ichthus\'\' is the newsletter.*list \[\[WP:X\/O\|here\]\]<\/small>)<\/center>/gi, '{{center\|1=$1}}');
  str = str.replace(/<big>\'\'\'\n(\*\[\[WP:WikiProject Christianity.*\n\*\[\[WP:WikiProject Christianity.*\n\*\[\[WP:WikiProject Christianity.*\n\*\[\[WP:WikiProject Christianity.*\n)\'\'\'<\/big>/gmi, '$1');

  str = str.replace(/(<small>)\n(::\'\')(You are receiving this notice because you are listed )/gmi, '$2$1$3');


  str = str.replace(/\|new_members  = <center><u>\'\'\'18 new members!\'\'\'<\/u><\/center><center>\'\'\'<big>{{noping\|CamV8}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Aeonx}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Kar2016}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Lee788}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Omotecho}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Leuven2015}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Rich Farmbrough}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Chiswick Chap}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Anna Frodesiak}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Atsme}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|PrimaPreussen}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Erpert}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|SueDonem}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Off\-shell}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Bogger }}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Gunkarta}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Bwtranch}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Debbiesw}}<\/big>\'\'\'<\/center>/gi, '\|new_members  = <div style="text\-align:center"><u>\'\'\'18 new members!\'\'\'<\/u><br>\'\'\'<big>{{noping\|CamV8}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Aeonx}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Kar2016}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Lee788}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Omotecho}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Leuven2015}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Rich Farmbrough}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Chiswick Chap}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Anna Frodesiak}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Atsme}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|PrimaPreussen}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Erpert}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|SueDonem}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Off\-shell}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Bogger }}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Gunkarta}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Bwtranch}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Debbiesw}}<\/big>\'\'\'<\/div>');

  str = str.replace(/\|new_members  = <center><u>\'\'\'7 new members!\'\'\'<\/u><\/center><center>\'\'\'<big>{{noping\|MikeHikes}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|They Terk Err Jerbs}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Zefr}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|sdlsy37}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|bclavellina}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|dtoled1}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Discott}}<\/big>\'\'\'<\/center>/gi, '\|new_members  = <div style="text\-align:center"><u>\'\'\'7 new members!\'\'\'<\/u><br>\'\'\'<big>{{noping\|MikeHikes}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|They Terk Err Jerbs}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Zefr}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|sdlsy37}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|bclavellina}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|dtoled1}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Discott}}<\/big>\'\'\'<\/div>');

  str = str.replace(/\|new_members  = <center><u>\'\'\'2 new members!\'\'\'<\/u><\/center><center>\'\'\'<big>{{noping\|VarunFEB2003}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|JoshMuirWikipedia}}<\/big>\'\'\'<\/center>/gi, '\|new_members  = <div style="text\-align:center"><u>\'\'\'2 new members!\'\'\'<\/u><br>\'\'\'<big>{{noping\|VarunFEB2003}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|JoshMuirWikipedia}}<\/big>\'\'\'<\/div>');

  str = str.replace(/\|new_members  = <center><u>\'\'\'2 new members!\'\'\'<\/u><\/center><center>\'\'\'<big>{{noping\|Rickludescher}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|CatonMA2}}<\/big>\'\'\'<\/center>/gi, '\|new_members  = <div style="text\-align:center"><u>\'\'\'2 new members!\'\'\'<\/u><br>\'\'\'<big>{{noping\|Rickludescher}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|CatonMA2}}<\/big>\'\'\'<\/div>');

  str = str.replace(/\|new_members  = <center><u>\'\'\'6 new members!\'\'\'<\/u><\/center><center>\'\'\'<big>{{noping\|OnBeyondZebrax}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|VMS Mosaic}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Martinyoung2775}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Omni Flames}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|CAPTAIN RAJU}}<\/big>\'\'\'<\/center><center>\'\'\'<big>{{noping\|Edwardx}}<\/big>\'\'\'<\/center>/gi, '\|new_members  = <div style="text\-align:center"><u>\'\'\'6 new members!\'\'\'<\/u><br>\'\'\'<big>{{noping\|OnBeyondZebrax}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|VMS Mosaic}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Martinyoung2775}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Omni Flames}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|CAPTAIN RAJU}}<\/big>\'\'\'<br>\'\'\'<big>{{noping\|Edwardx}}<\/big>\'\'\'<\/div>');

  str = str.replace(/<center>(\'\'\'<big>{{noping\|MeowMoon}}<\/big>\'\'\')<\/center>/gi, '{{center\|1=$1}}');
  str = str.replace(/<center>(<br>\'\'\'\[\[ReaLemon\]\]\'\'\'<br>\'\'\'\[\[Carrot\]\]\'\'\')<\/center>/gi, '{{center\|1=$1}}');
  str = str.replace(/<center>(<br>\'\'\'\[\[ReaLemon\]\]\'\'\'<br>\'\'\'\[\[Carrot\]\]\'\'\'<br>\'\'\'\[\[Malvern Water \(bottled water\)\]\]\'\'\')<\/center>/gi, '{{center\|1=$1}}');
  str = str.replace(/<center>(<br>\'\'\'\[\[Bean dip\]\]\'\'\'<br>\'\'\'\[\[ReaLemon\]\]\'\'\'<br>\'\'\'\[\[Carrot\]\]\'\'\')<\/center>/gi, '{{center\|1=$1}}');
  str = str.replace(/(\'\'\')<center>(<u>)(1 new member!\'\'\'<\/u>)<\/center>/gi, '{{center\|1=$2$1$3}}');
  str = str.replace(/<center>(<u>\'\'\'1 new member!\'\'\'<\/u>)<\/center>/gi, '{{center\|1=$1}}');

  str = str.replace(/<center>(\'\'\'Sunday, February 24, 1:00 PM\-5:00 PM)\n(The Ace Hotel \(DTLA\))\n(929 S Broadway, Los Angeles, CA 90015\'\'\')<\/center>/gmi, '{{center\|1=$1<br>$2<br>$3}}');
  str = str.replace(/(\'\'\')<center>(<small>Join our Facebook group \[https:\/\/www\.facebook\.com\/groups\/869710869719333\/ here\]\.)\n(To opt out of future mailings about LA meetups, please remove your name from \[\[Wikipedia:Meetup\/LA\/Invites\|this list\]\]\.<\/small>)<\/center>(\'\'\')/gi, '{{center|1=$1$2$3$4}}');
  str = str.replace(/({{center\|\'\'\'We're beginning to plan in\-person and virtual events for 2022, and your support is needed as we re-launch the LA User Group\.)(}})/gi, '$1\'\'\'$2');
  str = str.replace(/(<big>)(<center>)(\'\'\'It\'s the 7th Annual Los Angeles \[\[Wikipedia:Wiknic\|Wiknic!\]\]\'\'\'<br><\/big>)\n(\'\'\'Sunday, September 30, 11:00\-4:00 PM <br>)\n(\[\[Pan\-Pacific Auditorium\|Pan Pacific Park\]\], 7600 Beverly Blvd, Los Angeles, CA 90036\'\'\'<br>)/gi, '$2$1$3$4$5');
  str = str.replace(/(<small>Join our \[https:\/\/www.facebook.com\/groups\/869710869719333 Facebook group\], or follow us on \[https:\/\/twitter.com\/Wikipedia_LA Twitter\]!)\n(To opt out of future mailings about LA meetups, please remove your name from \[\[Wikipedia:Meetup\/LA\/Invites\|this list\]\]\.<\/small><\/center>)/gi, '$1$2');
  str = str.replace(/<center>(\'\'\'Friday, April 27, 2018, 9:00\-5:00<br>)\n(\[\[Bob Hope Patriotic Hall\]\], 1816 S\. Figueroa St\., Los Angeles, CA 90015\. )<\/center>/gi, '{{center|1=$1$2\'\'\'}}');
  str = str.replace(/<center>(\'\'\'We\'re beginning to plan in\-person and virtual events for 2022, and your support is needed as we re\-launch the LA User Group.)<\/center>/gi, '{{center|1=$1\'\'\'}}');

  str = str.replace(/(<big>\'\'\'The \[\[Wikipedia:WikiProject LGBT studies\|Miss Julie Memorial LGBT studies WikiProject\]\] Newsletter:<br\/>)\n(Special Pride 2009 Booty call edition\'\'\'<\/big>)/gmi, '$1$2');

  str = str.replace(/(cquote\|There are many well-respected.* everywhere it exists\.)''( \- Barack Obama,)/gi, '$1$2');

  str = str.replace(/<span( style="font-size:90%">\n#{{Flagicon|RUS}} )/gmi, '<div$1');
  str = str.replace(/(<\/sup> at 21:00\) {{Space icon\|s}})<\/span>/gi, '$1\n<\/div>');

  str = str.replace(/(==\'\'Wikipedia Signpost\'\': \'\'\'[\d]+ [a-z]+ \d\d\d\d\'\'\')<\/span>(==)/gi, '$1$2');
  str = str.replace(/(&nbsp;&nbsp; – <small>Background color is Classic Blue[^\']+Pantone\'s[^\']+<\/small>)\'\'/gi, '$1');

  str = str.replace(/(\[\[File:Gibraltar [a-z ]+.[jpgn]+\|center\|600px\|\'Domesday Book\') \'\'(\]\])/gi, '$1$2');

  str = str.replace(/<font (style="position: relative; top: \.3em; font\-size: 250%;">Weekly Delivery)<\/font>/gi, '<span $1<\/span>');

  str = str.replace(/(<span style="font\-family:Verdana"> )(<big>)(\'\'\')(GOOD NEWS<\/big><span style="color:#C71585">  The division of \[\[Wikipedia:WikiProject Iowa\]\]<br>called \[\[Wikipedia:WikiProject Iowa\/Communities\]\]<br>has been activated\.)( \'\'\' <\/span>)/gi, '$1$3$2$4<\/span>$5');

  str = str.replace(/(\| You voted for the \[\[Wikipedia:Cinema Collaboration of the Week\|Cinema Collaboration of the week\]\], and it has been chosen as <br\/>)<big><center>(\'\'\'[\[\]a-z \(\)\d]+\'\'\'\.)<\/center><\/big>(\'\'\'Please help improve it\'\'\' to match the quality of an \[\[Wikipedia:Featured articles\|ideal\]\] Wikipedia \[\[film\]\] article\.)<\/small>/gi, '$1{{center\|1=<big>$2<\/big>}}$3');

  str = str.replace(/(<center>\-\[\[Calvin Coolidge\]\]<\/center><\/div>{{Wikiquote\-inline\|Calvin Coolidge}}<)(center>)/gi, '$1\/$2');

  str = str.replace(/(<center>)''(\[\[The Tower of Babel \(Bruegel\)\|\'\'The Tower of Babel\'\' by Pieter Bruegel the Elder\]\]<br>)/gi, '$1$2');

  str = str.replace(/(\'\'\'\'\')(\[\[Wikipedia:Meetup\/DC 30\|)(She Blinded Me with Science\'\'\'\'\': \'\'Smithsonian Women in Science Edit\-a\-Thon)(\]\])(\'\')/gi, '$2$1$3$5$4');

  str = str.replace(/\|(<span style=)(color:white">)<center>( Volume \d+, Issue \d+ • )<span style=color:white">([a-z \d,]+ • )(\[\[Wikipedia:WikiProject Boston Red Sox\/Newsletter\|<span style="color:white">About the Newsletter)(\]\])[<\/center>]*/gi, '\|{{center\|1=$1"$2$3$4<\/span>$5<\/span>$6}}');
  str = str.replace(/(\|<big>\'\'\'\[\[Wikipedia:WikiProject Boston Red Sox\|<span style="color:white">The Boston Red Sox WikiProject<\/span>\]\] Newsletter\'\'\'<\/)div>/gi, '$1big>');

  str = str.replace(/(<big>\'\'\')(<font color="FFFFFF">)(The \[\[Wikipedia:WikiProject Eurovision\|<span style="color:#FFFFFF;">WikiProject Eurovision<\/span>\]\] Newsletter\'\'\'<\/big>)/gi, '$2$1$3');

  str = str.replace(/(\|<big>\'\'\'\[\[Wikipedia:WikiProject Education in New Jersey\|<span style="color:white">WikiProject Education in New Jersey<\/span>\]\]\'\'\'<\/)div>/gi, '$1big>');

  str = str.replace(/<font color="black"> *(<small>You are receiving this newsletter as a member of \[\[WP:NJ\|WikiProject New Jersey\]\]\. To stop receiving these messages, remove your name \[\[Wikipedia:WikiProject New Jersey\/Newsletter\/Signup\|here\]\]\.<\/small>\n)/gmi, '$1');

  str = str.replace(/\|(<span style="*color:white">)<center>( Issue \d+ • \[\[Wikipedia:WikiProject Malaysia\/Newsroom\/Newsletter\/[a-z]+ \d+\|<span style="color:white">[a-z]+ \d+<\/span>\]\] • \[\[Wikipedia:WikiProject Malaysia\/Newsroom\|<span style="color:black">About the Newsletter)(\]\])<\/center>/gi, '\|{{center\|1=$1$2<\/span>$3<\/span>}}');

  str = str.replace(/(<big>)<center>(\[\[Wikipedia:The_Wikipedia_Library\/Coordinators\/Signup\|Sign up to help here :\)\]\]<\/big>)<\/center>/gi, '{{center|1=$1$2}}');

  str = str.replace(/(<big>)\n(\'\'\'The WikiProject Articles for creation Newsletter\'\'\'<\/big>)/gmi, '$1$2');

  str = str.replace(/<p>(<big>\[\[Wikipedia:The Wikipedia Library\/Newsletter\/[a-z\-\d ]+\|Read the full newsletter\]\]<\/big><br><br>\n<\/div>)/gmi, '$1');

  str = str.replace(/(\* New: \[\[:en:Wikipedia:WikiProject Women in Red\/Meetup\/167\|Pride\]\] \'\'\'\/\'\'\'  \[\[:en:Wikipedia:WikiProject Women in Red\/Meetup\/168\|United Nations\]\] \'\'\'\/\'\'\' \[\[:en:Wikipedia:WikiProject Women in Red\/Meetup\/169\|Geofocus on reducing gender imbalance\]\])\'\'\'/gi, '$1');
  str = str.replace(/(\* New: \[\[:en:Wikipedia:WikiProject Women in Red\/Meetup\/163\|Healthcare\]\] \'\'\'\/\'\'\'  \[\[:en:Wikipedia:WikiProject Women in Red\/Meetup\/164\|Women and their animals\]\] \'\'\'\/\'\'\' \[\[:en:Wikipedia:WikiProject Women in Red\/Meetup\/166\|Marys and Mays\]\]\'\'\'\/\'\'\' \[\[:en:Wikipedia:WikiProject Women in Red\/Meetup\/165\|Geofocus Central \& Eastern Europe\]\]) \'\'\'/gi, '$1');
  str = str.replace(/^(\'\'\'\'\'[a-z]+ offerings at \[\[:en:Wikipedia:WikiProject Women in Red\|Women in Red\]\]\.\'\'\')(\n)/gmi, '$1\'\'$2');
  str = str.replace(/^(\'\'\'\'\'Happy Valentine\'s Day from all of us at \[\[:en:Wikipedia:WikiProject Women in Red\|Women in Red\]\]\.\'\'\')(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\* New: \'\'\'\[\[Wikipedia:WikiProject Women in Red\/Meetup\/197\|May Mays\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/198\|Mental Health\]\])(\n)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\* New: \'\'\'\[\[Wikipedia:WikiProject Women in Red\/Meetup\/199|Wiki Loves Pride\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/200\|June Junes\]\]  \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/201\|Jewellers & Watchmakers\]\])(\n)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\* New: \'\'\'\[\[Wikipedia:WikiProject Women in Red\/Meetup\/199\|Wiki Loves Pride\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/200\|June Junes\]\]  \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/201\|Jewellers \& Watchmakers\]\])(\n)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\* New: \[\[Wikipedia:WikiProject Women in Red\/Meetup\/236\|Alphabet run: C and D\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/237\|Indigenous women\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/238\|Refugees\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/239\|Comedians, Comics and other Performers\]\])\'\'\'/gi, '$1');
  str = str.replace(/(\* Continuing\: \[\[Wikipedia:WikiProject Women in Red\/Meetup\/251\|Peace and Diplomacy\]\] <small>\(year\-long initiative\)<\/small>  \'\'\'\|\'\'\' \[\[\:en\:Wikipedia\:WikiProject Women in Red\/Meetup\/252\|\#1day1woman\]\]) \'\'\'?/gi, '$1');
  str = str.replace(/(\* New: \[\[Wikipedia:WikiProject Women in Red\/Meetup\/258\|Geofocus Mediterranean\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/260\|Art \+ Activism\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/261\|Alphabet run Q \& R\]\]) \'\'\'/gi, '$1');
  str = str.replace(/(\* New: \[\[Wikipedia:WikiProject Women in Red\/Meetup\/262\|Gender studies\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/263\|Health\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/264\|Dance\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/265\|Alphabet run S & T\]\] \'\'\' \| \'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/266\|Books by women\]\]) \'\'\'/gi, '$1');
  str = str.replace(/(\* New: \[\[Wikipedia:WikiProject Women in Red\/Meetup\/267\|Alphabet run U, V, W\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/268\|Disability\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/269\|Women in Education\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/270\|CEE women\]\]) \'\'\'/gi, '$1');
  str = str.replace(/(\* New: \[\[Wikipedia:WikiProject Women in Red\/Meetup\/271\|Alphabet run X, Y & Z\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/272\|LGBTQ\+ women \| Wiki Loves Pride\]\]  \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/273\|Women in Music\]\]) \'\'\'/gi, '$1');
  str = str.replace(/(\* New: \[\[Wikipedia:WikiProject Women in Red\/Meetup\/274\|Women in Red\'s 8th anniversary\]\] \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/275\|Alphabet run A & B\]\]  \'\'\'\|\'\'\' \[\[Wikipedia:WikiProject Women in Red\/Meetup\/276\|Sports\]\]) \'\'\'/gi, '$1');
  str = str.replace(/(P.S. Next regular event February 15 will be \'\'\'\[\[Wikipedia:Meetup\/NYC\/February 2023\|Feb WikiWednesday\]\]\.)(\n)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\*Saturday\. April 30 \'\'\'\[\[Wikipedia:Meetup\/NYC\/MENA\|Contemporary Art of the Middle East and North Africa @ Guggenheim\]\]\'\'\' \(\'\'Participants have to bring their own laptops and power cords\)\.)(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\*\*\* \[https:\/\/news.usc.edu\/195978\/commonsense\-artificial\-intelligence\-ai\/ )\'\' "(With artificial intelligence, common sense is uncommon\]. "To help overcome this challenge, researchers use several sources of commonplace knowledge like Wikidata to obtain a “reasoned” AI response." )\'\'/gi, '$1$2');

  str = str.replace(/(:—\[\[User:MediaWiki message delivery\|MediaWiki message delivery\]\] \(\[\[User talk:MediaWiki message delivery\|talk\]\]\)[ delivr]* on behalf of .*\|Imzadi1979.* \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');
  str = str.replace(/(:—delivered by \[\[User:MediaWiki message delivery\|MediaWiki message delivery\]\] \(\[\[User talk:MediaWiki message delivery\|talk\]\]\) on behalf of {{U[ser0]*\|Imzadi1979}} on \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');
  str = str.replace(/(:—\[\[User:MediaWiki message delivery\|MediaWiki message delivery\]\] \(\[\[User talk:MediaWiki message delivery\|talk\]\]\) \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\) on behalf of {{u\|Imzadi1979}}) <\/small>/gi, '$1');
  str = str.replace(/(:—[delivered by ]*\[\[User:MediaWiki message delivery\|MediaWiki message delivery\]\] \(\[\[User talk:MediaWiki message delivery\|talk\]\]\) on behalf of <span style="background:#006B54; padding:2px;">\'\'\'\[\[User:Imzadi1979\|<span style="color:white;">Imzadi&nbsp;1979<\/span>\]\]&nbsp;\[\[User talk:Imzadi1979\|<span style="color:white;"><big>→<\/big><\/span>\]\]\'\'\'<\/span> on \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');
  str = str.replace(/(:—delivered by \[\[User:MediaWiki message delivery\|MediaWiki message delivery\]\] \(\[\[User talk:MediaWiki message delivery\|talk\]\]\) on behalf of \[\[User:Imzadi1979\|Imzadi1979\]\] \(\[\[User talk:Imzadi1979\|talk\]\]\) on \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');
  str = str.replace(/(:—\[\[User:MediaWiki message delivery\|MediaWiki message delivery\]\] \(\[\[User talk:MediaWiki message delivery\|talk\]\]\) on behalf of Imzadi1979, \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');
  str = str.replace(/(:—\[\[User:MediaWiki message delivery\|MediaWiki message delivery\]\] \(\[\[User talk:MediaWiki message delivery\|talk\]\]\) \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');

  str = str.replace(/(: —\[\[User:Rschen7754bot\|Rschen7754bot\]\] \(\[\[User talk:Rschen7754bot\|talk\]\]\) \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');
  str = str.replace(/(: *—<span style="background:#006B54; padding:2px;" *>\'\'\'\[\[User:Imzadi1979\|<span style="color:white;">Imzadi&nbsp;1979<\/span>\]\]&nbsp;\[\[User talk:Imzadi1979\|<span style="color:white;"><big>→<\/big><\/span>\]\]\'\'\'<\/span>  \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');
  str = str.replace(/(: —)<\/small>( *\[\[User:JCbot\|JCbot\]\] \(\[\[User talk:JCbot\|talk\]\]\) \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))/gi, '$1$2');
  str = str.replace(/(<hr *\/><br *\/>\n)<div style="font\-size: *12pt; font\-family: *Times New Roman; text\-align: *center; *">\n(\n\|\- style="text\-align: center;")/gmi, '$1$2');
  str = str.replace(/(\* \[\[outreach:Education Portal\/Newsletter\/[a-z]+ 20\d\d\/Articles of Interest in other publications\|Articles of Interest in other publications\]\]\n+)<div>/gmi, '$1<\/div>');
  str = str.replace(/(<big>)\n+(\'\'\'The \[\[Wikipedia:WikiProject Professional wrestling\|WikiProject Professional wrestling\]\] Newsletter\'\'\'<\/big>)/gi, '$1$2');

  str = str.replace(/(:—\[\[User:EdwardsBot\|EdwardsBot\]\] \(\[\[User talk:EdwardsBot\|talk\]\]\) \d+:\d+, \d+ [a-z]+ 20\d\d \(UTC\))<\/small>/gi, '$1');

  str = str.replace(/<div>\n\|\-/gmi, '<\/div>\n\|\-');

  str = str.replace(/(<small>\'\'Procedural notes:.*enforcement action\. )<p>([a-z ,\.\(\)]+.\(see \[\[WP:UNINVOLVED\]\]\)\.\'\'<\/small>)/gi, '$1<br \/>$2');

  str = str.replace(/(\|<font color="gold">\'\'\'100000 Edits\'\'\')(\n)/gmi, '$1<\/font>$2');
  str = str.replace(/(\|<font color="gold"> Congratulation[a-z]* on reaching 100000 edits[a-z\d \.\,]+The Wikipedia Community thanks you for your continuing efforts. *Keep up the good work! *)(\n)/gmi, '$1<\/font>$2'); 
  str = str.replace(/(\|info     = <font color="gold">This user has been awarded with the \'\'\'100000 Edits award\'\'\'.)(\n)/gmi, '$1<\/font>$2');
  str = str.replace(/(<font color="black">)(\n\|})/gmi, '$2');

  //Delete p <p> tag on its own line  
  str = str.replace(/\n<p>\n/gmi, '\n\n');

  //fix table ending for EdwardsBot messages
  str = str.replace(/(\[\[User:EdwardsBot\|EdwardsBot\]\]}})(\|})/gi, '$1\n$2');
  str = str.replace(/(}})(\|}\n<!\-\- EdwardsBot)/gmi, '$1\n$2');

  str = str.replace(/(<p>\[\[Wikipedia:WikiProject Wikify\/News\/July 2012\/Members\|Membership\]\] &bull; \[\[Wikipedia:WikiProject Wikify\/News\/July 2012\/Drive\|June drive results\]\])(\n)/gmi, '$1<\/p>$2');

  str = str.replace(/(\|style="text\-align:center;"\|<small>DISCLAIMER: +This humor does not reflect the official humor of Wikipedia, the Wikimedia Foundation, or Jimbo Wales[\.,a-z ]+[<br>]*All rights released under GFDL. )(\n)/gmi, '$1<\/small>$2');

  str = str.replace(/(\'\'\'<big>Happy New Year from \[\[meta:Wikimedians of Los Angeles\|Wikimedians of Los Angeles\]\]! <\/big>)\n/gmi, '$1\'\'\'\n');
  str = str.replace(/({{center|\'\'\'We\'re beginning to plan in-person and virtual events for 2022, and your support is needed as we re\-launch the LA User Group\.)(}})/gmi, '$1\'\'\'$2');
  str = str.replace(/<center>(<big>Please join us [a-z \(\)\-,\.\']*!<\/big>)<\/center>/gi,'{{center\|1=$1}}');
  str = str.replace(/<center>(<big>\'*Join us [a-z \(\)\-,\.\'\d]*!\'*<\/big>)<\/center>/gi,'{{center\|1=$1}}');
  str = str.replace(/<center>(<big>Please stay where you are for an unSalon!<\/big>)<\/center>/gi,'{{center\|1=$1}}');
  str = str.replace(/<center>(<small>\(\[\[Wikipedia:Meetup\/SFrancisco\/Invite\|Subscribe\/Unsubscribe to this talk page notice here\]\]\)<\/small> )\|( \[\[User:MediaWiki message delivery\|MediaWiki message delivery\]\] \(\[\[User talk:MediaWiki message delivery\|talk\]\]\) [\d\:, a-z]+ \(UTC\) )<\/center>/gi,'{{center\|1=$1&#124;$2}}');

  str = str.replace(/<font( style="position: relative; top: .3em; font\-size: 250%;">\'\'\'Weekly Delivery\'\'\'<\/)font>/gi,'<span$1span>');

  str = str.replace(/\'\'\'<center>(<small>Join our Facebook group \[https:\/\/www.facebook.com\/groups\/869710869719333\/ here\], and follow us on \[https:\/\/twitter.com\/Wikipedia_LA Twitter \].<br>)\n(To opt out of future mailings about LA meetups, please remove your name from \[\[Wikipedia:Meetup\/LA\/Invites\|this list\]\].<\/small>)<\/center>\'\'\'/gmi, '{{center|1=\'\'\'$1$2\'\'\'}}'); 

  str = str.replace(/(<span style=color:black">)<center>( Volume 1, Issue 1 • )<span style=color:black">([a-z]+ \d+, \d\d\d\d • )(\[\[Wikipedia:AWC\/newsletter\|<span style="color:white">About the Newsletter)(\]\])<\/center>/gi,'{{center\|1=$1$2$3<\/span>$4<\/span>$5}}');

  str = str.replace(/(<big>\'\'\'\[\[WP:AWC\|<span style="color:white">The Wikipedia Awards Center <\/span>]] Newsletter\'\'\')<\/div>/gi, '$1<\/big>');

  //WikiProject Yorkshire newsletters (many slight variants)
  str = str.replace(/<center>(<small>Got any suggestions\?<br[ \/]*> — \'\'Add them \[\[WT:YORKS\|<font color="#000000">here<\/font>\]\]\'\'<\/small><br\/>)/gi,'{{center\|1=$1}}');
  str = str.replace(/<center>(<small>Got any suggestions\?<br[ \/]*> — \'\'Add them \[\[WT:YORKS\|<span style="color:#000+;">here<\/span>\]\]\'\'<\/small><br\/>)/gi,'{{center\|1=$1}}');
  str = str.replace(/(\*\'\'Assessment\'\'<br \/>)"\'\'(\[\[Wikipedia:WikiProject Yorkshire\/Assessment\|Assess and review\]\] Assessment of Yorkshire related articles  has been brought  up to date recently, but needs constant maintenance\.)/gi, '$1$2');
  str = str.replace(/(<small>Written by \[\[User:[a-z\d \|]+\]\] • Template by \[\[User:Jza84\|Jza84\]\] \| \'\'\'\[\[Wikipedia:WikiProject Yorkshire\/Newsletter\/[a-z]+ 20\d\d\|Single\-Page View\]\])(<\/small>)(\'\'\')<\/div>/gi, '$1$3$2');
  str = str.replace(/(<small>Written by \[\[User:[a-z\d \|]+\]\][\/ and&]+\[\[User:[a-z\d \|]+\]\] *• Template by \[\[User:Jza84\|Jza84\]\] \| \'\'\'\[\[Wikipedia:WikiProject Yorkshire\/Newsletter\/[a-z]+ 20\d\d\|Single\-Page View\]\])(<\/small>)(\'\'\')<\/div>/gi, '$1$3$2');
  str = str.replace(/(<small>Written by {{noping\|[a-z\d \|]+}} • Template by {{noping\|[a-z\d \|]+}} \| \'\'\'\[\[Wikipedia:WikiProject Yorkshire\/Newsletter\/[a-z]+ 20\d\d\|Single\-Page View\]\])(<\/small>)(\'\'\')[<\/div>]*/gi, '$1$3$2');
  str = str.replace(/(<big>)\n(\'\'\'The \[\[Wikipedia:WikiProject Yorkshire\|WikiProject Yorkshire\]\] Newsletter\'\'\'<\/big>)/gmi, '$1$2');
  str = str.replace(/<center>(<small>Delivered [a-z]+ 20\d\d by \[\[User:ENewsBot\|\'\'\'ENewsBot\'\'\'\]\]\. If you do not wish to receive the newsletter, please add [twoan \*\'s]+ b[yefore]+ your username on the Project Mainpage\.<\/small>)<\/center>/gi,'{{center\|1=$1}}');
  str = str.replace(/(PR started on \'\'\'Ju[a-z][a-z] \d\dth)\n(\'\'\'<br \/>)/gmi, '$1$2');
  str = str.replace(/(DYK featured on main page on '''June 25th)\n(\'\'\'<br \/>)/gmi, '$1$2');
  str = str.replace(/(\'\'\[\[Church of St Michael and All Angels, Beckwithshaw\]\]\')( appeared)/gi, '$1\'$2');

  //GOCE newsletters
  str = str.replace(/<center>(<big>\'\'\'[\[\]a-z &;\|\d><:\/\-]+\'\'\'<\/big><p><small>To discontinue receiving GOCE newsletters, please remove your name from \[\[Wikipedia:WikiProject Guild of Copy Editors\/Mailing List\|our mailing list\]\]\.[a-z ]*\[\[User:EdwardsBot\|EdwardsBot\]\] \(\[\[User talk:EdwardsBot\|talk\]\]\) [\d\:, a-z]+ \(UTC\)<\/small>)<\/center>/gi, '{{center\|1=$1<\/p>}}');
  str = str.replace(/<center>(<p><small>To discontinue receiving GOCE newsletters, please remove your name from \[\[Wikipedia:WikiProject Guild of Copy Editors\/Mailing List\|our mailing list\]\]\.<\/small>)<\/center>/gi, '{{center\|1=$1<\/p>}}');
  str = str.replace(/<center>(<p><small>To discontinue receiving GOCE newsletters, please remove your name from \[\[Wikipedia:WikiProject Guild of Copy Editors\/Mailing List\|our mailing list\]\]\.[a-z ]*\[\[User:EdwardsBot\|EdwardsBot\]\] \(\[\[User talk:EdwardsBot\|talk\]\]\) [\d\:, a-z]+ \(UTC\)<\/small>)<\/center>/gi, '{{center\|1=$1<\/p>}}');
  str = str.replace(/(<span style="font-size: 110%;">\'\'\'\[\[WP:GOCE\|Guild of Copy Editors\]\] [a-z \d]+ News[letr]*)(<\/span>)/gi, '$1\'\'\'$2'); 
  str = str.replace(/([a-z]+_202\d\| *[a-z \d]+ Backlog Elimination Drive)\'\'\'(\]\])/gi, '$1$2');
  str = str.replace(/([a-z]+_202\d\|[a-z]+ 202\d Copy Editing Blitz)\'\'\'(\]\])/gi, '$1$2');
  str = str.replace(/(<big>\[\[Wikipedia:WikiProject Guild of Copy Editors\/Blitzes\/[a-z]+ 20\d\d\|>>> Sign up for the [a-z]+ [Blitzdrve]+\! <<<\]\])'''(<\/big>)/gi, '$1$2');
  str = str.replace(/(<big>\[\[Wikipedia:WikiProject Guild of Copy Editors\/Backlog elimination drives\/[a-z]+ 20\d\d\|>>> Sign up for the [a-z]+ [Blitzdrve]+\! <<<\]\])'''(<\/big>)/gi, '$1$2');
  str = str.replace(/<center>(The \'\'\'\[\[Wikipedia:WikiProject Guild of Copy Editors\/Newsletters\/[a-z \d]+\|[a-z \d]+ wrap\-up\]\]\'\'\' is now ready for review\.)<\/center>/gi, '{{center\|1=$1}}');

  str = str.replace(/(MediaWiki message delivery.*21 February 2014 \(UTC\))(\|\})/gi, '$1\n$2');

  //Military history and Wikify newsletters
  str = str.replace(/(\* [a-z \-]+: \'\'\[\[Wikipedia:WikiProject Military history\/News\/.*\]\])(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(<p>\[\[Wikipedia:WikiProject Military history\/[a-z •\d\-\|\[\]\/\":\&;]+)(\n<\/div>)/gmi, '$1<\/p>$2');
  str = str.replace(/(<p>\[\[Wikipedia:WikiProject Wikify\/[a-z •\d\-\|\[\]\/\":\&;]+)(\n<\/div>)/gmi, '$1<\/p>$2');
  str = str.replace(/(<p><small>Keep track of upcoming reviews\. Just copy and paste {{tlx\|WPMILHIST Review alerts}} to your user space<\/small>)(\n)/gmi, '$1<\/p>$2');
  str = str.replace(/(\[\[Derfflinger class battlecruiser\|\'\'Derfflinger class battlecruiser)(\]\])/gi, '$1\'\'$2');

  //WikiProject Saskatchewan newsletters
  str = str.replace(/(  \| accessdate =2009\-09\-20 }}<\/ref>)({{reflist}}  )/gi, '$1\n$2');
  str = str.replace(/\*\'\'\'\'\'\'\n/gmi, '');
  str = str.replace(/==<div style="font\-family:monotype corsiva, Arial, Helvetica, sans\-serif; font\-size:15px; color:Purple;">\[\[Image:Flag of Saskatchewan\.svg\|42px\]\] \'\'\'(\[\[Wikipedia:WikiProject Saskatchewan\|WikiProject Saskatchewan\]\] \[\[Wikipedia:WikiProject Saskatchewan\/Outreach\|Newsletter\]\]: Volume \d+, Issue \d+ \- [a-z]+ 20\d\d)\'\'\'<\/div>==/gi, '==$1=='); 
  str = str.replace(/==<div style="font\-family:monotype corsiva, Arial, Helvetica, sans\-serif; font\-size:15px; color:Purple;">\[\[Image:Flag of Saskatchewan\.svg\|42px\]\] \'\'\'(\[\[Wikipedia:WikiProject Saskatchewan\|WikiProject Saskatchewan\]\] \[\[Wikipedia:WikiProject Saskatchewan\/Outreach\|Newsletter\]\]:) <br \/>:  \[\[File:Jack\-o\-lantern\.svg\|42px\]\] ( Volume \d+, Issue \d+ \- [a-z]+ 20\d\d)\'\'\' \[\[File:Nek\-o\-lantern\.svg\|42px\]\]<\/div>==/gi, '==$1$2==');
  str = str.replace(/==<div style="font\-family:monotype corsiva, Arial, Helvetica, sans\-serif; font\-size:15px; color:Purple;">\[\[Image:Flag of Saskatchewan\.svg\|42px\]\] \'\'\'(\[\[Wikipedia:WikiProject Saskatchewan\|WikiProject Saskatchewan\]\] \[\[Wikipedia:WikiProject Saskatchewan\/Outreach\|Newsletter\]\]:)\[\[File:Wreath icon\.png\|42px\]\] <br \/>:   ( Volume \d+, Issue \d+ \- [a-z]+ 20\d\d)\'\'\'<\/div>==/gi, '==$1$2==');
  str = str.replace(/==<div style="font\-family:monotype corsiva, Arial, Helvetica, sans\-serif; font\-size:15px; color:Purple;">\[\[Image:Flag of Saskatchewan\.svg\|42px\]\] \'\'\'(\[\[Wikipedia:WikiProject Saskatchewan\|WikiProject Saskatchewan\]\] \[\[Wikipedia:WikiProject Saskatchewan\/Outreach\|Newsletter\]\]: Volume \d+, Issue \d+ \- [a-z]+ 20\d\d)\'\'\' \[\[File:Royal British Legion\'s Paper Poppy \- white background\.jpg\|42px\]\]<\/div>==/gi, '==$1==');
  str = str.replace(/(Subcribers\|Subscribers\]\] &nbsp;\|&nbsp;\n<\/div>)<\/center>/gmi, '$1'); 

  str = str.replace(/<center><font size=4>(\'\'\'Navigation:\'\'\')<br><\/font><\/center>/gi, '{{center\|1=<span style="font\-size:large">$1<\/span>}}');

  str = str.replace(/(\|style="color:#076A21; text\-align:center"\|)\'\'(\n)/gmi, '$1$2'); 

  str = str.replace(/<\/center>\n(\|} <div style="float:right; font\-size:80%;">New condensed format delivered by:)/gmi, '$1');

  str = str.replace(/ <font color="Red">(\(\[\[Wikipedia:WikiProject Saskatchewan\/Newsletter\/January 2010\|)(January 2010!)(\]\])( \- Post your news years resolution\))<\/font>\'\'\'/gi, '$1<span style="color:red">$2<\/span>$3<span style="color:red">$4<\/span>');

  //Template:Welcomeg missing closing div tag, substed on thousands of talk pages
  str = str.replace(/([\|!] <div style="margin.*Hello.*Welcome\]\] to Wikipedia.* Please remember to .* Happy editing!.* \d\d\d\d \(UTC\) *)(\n\|})/gmi, '$1<\/div>$2');
  str = str.replace(/([\|!] <div style="margin.*Hello.*Welcome to Wikipedia.* Please do your best to .* Happy editing!.* \d\d\d\d \(UTC\) *)(\n\|})/gmi, '$1<\/div>$2');

  //Another welcome message
  str = str.replace(/(\|colspan="2" \|)<center>(\[\[Image:AnimWIKISTAR\-laurier\-WT\.gif\|AnimWIKISTAR\-laurier\-WT\.gif)(\]\]\n)(<big>)<center>(Hello, <span style="color: #0047AB">\'\'\'{{BASEPAGENAME}}\'\'\'<\/span>, and \[\[Wikipedia:Welcoming committee\/Welcome to Wikipedia\|welcome to Wikipedia!\]\]<\/br>Thank you for registering an account\.<\/br>I hope you like the place and decide to stay\.)<\/center>(<\/big>)/gmi, '$1$2\|center$3{{center\|1=$4$5$6}}');
  str = str.replace(/<center>(If you need help, ask me on my talk page, or get instant online help at \[http:\/\/webchat\.freenode\.net\/\?channels=#wikipedia\-en\-help IRC\]\.<\/br>\nYou can also place <code><nowiki>{{helpme}}<\/nowiki><\/code> on your talk page and someone will come shortly to answer your questions\.)<\/center>/gmi, '{{center\|1=$1}}');

  //Airplaneman (and derivatives) welcome message
  str = str.replace(/(<div style="margin.*Hello.*My name\'s \[\[User:.* and I just wanted .* Please remember to .* Happy editing!.* \d\d\d\d \(UTC\) *)(\n\|})/gmi, '$1<\/div>$2');

  //Block messages
  str = str.replace(/(<div class="user\-block">\[\[Image:Stop_x_nuvola\.svg\|left\|35px\]\]<span style="font\-size: 105%;">Your account has been \'\'\'blocked indefinitely\'\'\' from editing Wikipedia because it appears to be mainly intended or used for publicity and\/or promotional purposes. Please read the following carefully.<\/span>)<\/br>(\n\n)/gmi, '$1$2');
  str = str.replace(/(<div class="user\-block" style="min\-height: 40px">)(<p>)(\[\[File:Stop x nuvola\.svg\|left\|40px\|alt=\|link=\]\])(Your account has been)/gi, '$1$3$2$4');
  str = str.replace(/(<div style="text\-align:center;" class="plainlinks"><small>\[\[Wikipedia:Administrator intervention against vandalism\|Notify an administrator\]\] • \[\[Special:Contributions\/{{PAGENAME}}\|contribs\]\] • \[\[Special:Blockip\/{{PAGENAME}}\|block\]\] • \[{{fullurl:Special:Log\/block\|page=User:{{PAGENAMEE}}}} block log\])(\n\|})/gmi, '$1<\/small><\/div>$2');
  str = str.replace(/<center>(This \[\[IP address[\|IP]*\]\] has been[ repeatedly]* \[\[Wikipedia:Blocking policy\|blocked\]\] from editing Wikipedia in response to \[\[Wikipedia:vandalism\|abuse of editing privileges\]\]\.<br \/>\'\'\'Further abuse from this IP[ address]* may result in an extended block\.\'\'\')<\/center>/gi, '{{center\|1=$1}}');
  str = str.replace(/<center>(This \[\[IP address\|IP\]\] has been repeatedly \[\[Wikipedia:Blocking policy\|blocked\]\] from editing Wikipedia in response to \[\[Wikipedia:vandalism\|abuse of editing privileges\]\]\. Further abuse from this IP may result in an immediate block without further warning\.)<\/center>/gi, '{{center\|1=$1}}');
  str = str.replace(/(<\/small>)<p>(<\/div><!\-\- Template:Blocked talk\-revoked\-notice \-\->\n)/gmi, '$1$2');

  str = str.replace(/<p>(\'\'\'Why can\'t I edit Wikipedia\?\'\'\')<\/br>\n/gmi, '$1\n\n');

  str = str.replace(/<p>([\[\]a-z\|\' :]+ and\/or username indicate that it is being used on behalf of a [a-z ,\-]+ for purposes of promotion and\/or publicity. +The edits may have violated one or more of our rules on [\[\]a-z\|\' :]+, which include: \[\[WP:LINKSPAM\|adding inappropriate external links\]\], \[\[WP:SPAM\|posting advertisements\]\], and \[\[WP:PROMOTION\|using Wikipedia for promotion\]\]. [\[\]a-z\|\', :]+ it is considered [\[\]a-z\|\' :]+ for such groups to use Wikipedia to write about themselves. \'\'In addition\'\', usernames like yours are disallowed under our \[\[WP:ORGNAME\|username policy\]\].)\n/gmi, '$1\n');

  str = str.replace(/(^:\'\'The above discussion is preserved as an archive of the debate. +<span style="color:red">\'\'\'Please do not modify it.\'\'\'<\/span> Subsequent comments should be made on the appropriate discussion page.*or in a \[\[Wikipedia:Deletion review\|deletion review\]\]\). No further edits should be made to this page.)( <!\-\-Template:Afd bottom\-\-><\/div>\n)/gmi, '$1\'\'$2');

  str = str.replace(/(<span style="font\-size: 95%;">{{Red\|\'\'\'Filing party\'\'\'}}: Please ensure you have fully read \[\[Wikipedia:Requests for mediation\/Common reasons for rejection#Failure to demonstrate sufficient prior dispute resolution attempts\|\'\'\'this guide\'\'\'\]\] before filing\.)\'\'(<\/span>)/gi, '$1$2'); 

  //FAC nominations missing closing italics
  // str = str.replace(/(<small>\'\'Nominator\(s\):)( [^\']+<\/small\>\n)/gmi, '$1\'\'$2');


  //Misnested tags
  str = str.replace(/(for \[\[WP\:ARCHIVE\|\(\<b\>more\<\/b\>\)\]\] information\.)(\<\/i\>)(\<\/span\>)/gi, '$1$3$2');    
  str = str.replace(/(for \[\[WP\:ARCHIVE\|\(\'\'\'more\'\'\'\)\]\] information\.)(\'\')(\<\/span\>)/gi, '$1$3$2'); 
  str = str.replace(/\<small\>(\{\{updated\|[\da-z \.,]+\}\}\.*)\<\/small\>/gi, '$1');
  str = str.replace(/(\'\'\')(\<s\>)(Oppose\'\'\')/gi, '$2$1$3');
  str = str.replace(/(\'\'\')(\<s\>)(Weak oppose\'\'\')/gi, '$2$1$3');
  str = str.replace(/(<s>)(\'\'\')([A-Za-z\d,\.:; ]+<\/s>)/gi, '$2$1$3');
//  str = str.replace(/(\'\'\')(<s>)([A-Za-z\d,\.:; ]+\'\'\')/gi, '$2$1$3');  // false positives
  str = str.replace(/(<i><b>Update:)(<\/i>)(<\/b>)/gi, '$1$3$2');
  str = str.replace(/(<b><i>Update:)(<\/b>)(<\/i>)/gi, '$1$3$2');

  //Misnested tags before some images
  str = str.replace(/(<s>)(\[\[File:Information\.svg\|left\|25px\|alt=\]\])( Hello)/gi,'$2$1$3');
  str = str.replace(/(<s>)(\[\[File:Information\.svg\|30px\|left\]\])\n(An)/gmi,'$2$1$3');

  //indented div templates
  str = str.replace(/:: *({{interlinear)/gi, '$1\|indent\=4');    
  str = str.replace(/:: *({{fs interlinear)/gi, '$1\|indent\=4');      
  str = str.replace(/: *({{interlinear)/gi, '$1\|indent\=3');    
  str = str.replace(/: *({{fs interlinear)/gi, '$1\|indent\=3');      

  //Fostered content 
  str = str.replace(/(\|\-)\n\<br \/\>(\n\|)/gmi, '$1$2'); 

  //unclosed p tag used as a clear template on Userbox pages
  str = str.replace(/\<p style\=\"clear\: both\; padding\-top\: 2em\"\>/g, '\{\{clear\}\}');  

  //unclosed p tags -- specific circumstances
  str = str.replace(/(<p>[^\<\n]+\(UTC\) *)(\n)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<\n]+\(UTC\) *)(\n)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<\n]+\(UTC\) *)(\n)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<\n]+\(UTC\) *)(\n)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<\n]+\(UTC\) *)(\n)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>)(<p>\n)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>)(<p>)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<\n]+)(<p>)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<\n]+)(<p>)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<\n]+)(<p>)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<]*)(<\/li>)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<]*)(<\/ul>)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<]+)(<ol>)/gi, '$1<\/p>$2'); 
  str = str.replace(/(<p>[^\<]*)(<\/*blockquote>)/gi, '$1<\/p>$2');
  str = str.replace(/(<p>\'\'\'<u>Sources<\/u>\'\'\'<)(p>)/gi, '$1\/$2');
  str = str.replace(/(<u>\'\'\'Sources\'\'\'<\/u>)<p>(<ol>)/gi, '$1$2');
  str = str.replace(/(<p>[a-z\d_— \[\]\|\/\'"&;:!°\.#ταλκ\(\)–\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§⊕⊗会話投稿記録日本穣投稿]+)(\n)/gi, '$1<\/p>$2'); 

  //Improperly indented NumBlk
  str = str.replace(/^(\:+)(\{\{NumBlk\|)/gmi, '$2$1'); 

  //Fix linter missing or extra end tags
  str = str.replace(/(<small> \'\'\'Unblocking administrator\'\'\': Please check for <span class="plainlinks">\[http:\/\/toolserver.org\/\~eagle\/autoblockfinder.php\?user=\{\{PAGENAMEE\}\} active autoblocks\] on this user after accepting the unblock request\.)(<\/small>)/gi, '$1<\/span>$2');

  str = str.replace(/(:\'\'The following discussion is preserved as an archive of a \[\[wikipedia:requests for adminship\|request for adminship\]\] that \'\'\'did not succeed\'\'\'. <[spantrog]+ style="color:red;*">\'*Please do not modify it\.\'*<\/[spantrog]+>)(\[\[Category:Unsuccessful requests for adminship\|{{SUBPAGENAME}}\]\]\n)/gmi, '$1\'\'$2');
  str = str.replace(/(:\'\'The following discussion is preserved as an archive of a \[\[wikipedia:requests for adminship\|request for adminship\]\] that \'\'\'did not succeed\'\'\'. <[spantrog]+ style="color:red;*">\'*Please do not modify it\.\'*<\/[spantrog]+>)(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(:\'\'The following discussion is preserved as an archive of a \[\[wikipedia:requests for adminship\|request for adminship\]\] that \'\'\'did not succeed\'\'\'. \'*Please do not modify it\.\'* *)(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(:\'\'The following discussion is preserved as an archive of a \'\'\'successful\'\'\' \[\[wikipedia:requests for adminship\|request for adminship\]\]. <span style="color:red;*">\'\'\'Please do not modify it\'\'\'<\/span>\.)(\[\[Category:Successful requests for adminship\|{{SUBPAGENAME}}\]\]\n)/gmi, '$1\'\'$2');

  str = str.replace(/(\|\| *\'\'\'[\d\,\-– a-z\.½—]+)( *\|\|)/gi, '$1\'\'\'$2');
  str = str.replace(/(\|\|[\t ]*\<span style\=\"color\:\#[\da-z]+\;*\"\>[a-z\d \t]+)(\|\|)/gi, '$1\<\/span\>$2');
  str = str.replace(/(\|\|[\t ]*\<small\>[a-z\d \t\(\)\-–\'\?\;\[\]\,\&]+)(\|\|)/gi, '$1\<\/small\>$2');
  str = str.replace(/(\<sub\> *[\dcnxQroTev]+[ ]*)(\n*\|)/gmi, '$1\<\/sub\>$2');
  str = str.replace(/(\<sup\> *[\dcnxQroTev]+[ ]*)(\n*\|)/gmi, '$1\<\/sup\>$2');
  str = str.replace(/(\<small\>\{\{[A-Z][A-Z][A-Z]\}\}) *(\|\|)/g, '$1\<\/small\>$2');
  str = str.replace(/(\<small\>\{\{[A-Z][A-Z][A-Z]\}\}) *(\n\|)/g, '$1\<\/small\>$2');
  str = str.replace(/(\<small\> *\([012345]\+[012345]\+[012345]\+[012345]\)) *(\n)/g, '$1\<\/small\>$2');
  str = str.replace(/(\<small\> *\([012345]\+[012345]\)) *(\n)/g, '$1\<\/small\>$2');
  str = str.replace(/(\|\|[\t ]*\<u\>[a-z\d \t\(\)\-–\']+)(\|\|)/gi, '$1\<\/u\>$2');
  str = str.replace(/(\<div id\=\"[a-z \.\d\,\-–\/\?\'\(\)\;áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+\"\>)( *\{\{football *box)/gi, '$1\<\/div\>$2'); //for football articles with unclosed div tags for each match
  str = str.replace(/(\<div id\=\"[a-z \.\d\,\-–\/\?\'\(\)\;áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+\"\>)( *\{\{handball *box)/gi, '$1\<\/div\>$2'); //for football articles with unclosed div tags for each match
  str = str.replace(/( *\<small\>[a-z \.\[\]\d\,\-–\/\?\'\(\)\;áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+)( *\|\|)/gi, '$1\<\/small\>$2');
  str = str.replace(/(\<small\>b\/w[a-z \.\[\]\d\,\-–\/\?\!\'\(\)\;\"\&\:ñ\#]+\<br *\/\>[a-z \.\[\]\d\,\-–\/\?\!\'\(\)\;\"\&\:ñ\#]+) *(\n\|)/gmi, '$1\<\/small\>$2'); //for discographies and song lists
  str = str.replace(/(\<small\>b\/w[a-z \.\[\]\d\,\-–\/\?\!\'\(\)\;\"\&\:ñ\#]+) *(\n\|)/gmi, '$1\<\/small\>$2'); //for discographies and song lists
  str = str.replace(/(\<small\>b\/w[a-z \.\[\]\d\,\-–\/\?\!\'\(\)\;\"\&\:ñ\#]+) *(\|\|)/gmi, '$1\<\/small\>$2'); //for discographies and song lists
  str = str.replace(/(\<small\>Both sides[a-z \.\[\]\d\,\-–\/\?\'\(\)\;\"\&\#]+) *([\n\|]+)/gmi, '$1\<\/small\>$2'); //for discographies and song lists
  str = str.replace(/(\<small\>CD sing[a-z \.\[\]\d\,\-–\/\?\'\(\)\;\"\&\#]+) *([\n\|]+)/gmi, '$1\<\/small\>$2'); //for discographies and song lists
  str = str.replace(/(\<small\>B-side[a-z \.\[\]\d\,\-–\/\?\'\(\)\;\"\&\#:]+) *([\n\|]+)/gmi, '$1\<\/small\>$2'); //for discographies and song lists
  str = str.replace(/(\<small\>\(feat[a-z \.\[\]\d\,\-–\/\?\'\(\)\;\"\&\#:]+) *([\n\|]+)/gmi, '$1\<\/small\>$2'); //for discographies and song lists

  str = str.replace(/(\|colspan\=3 style\=\"padding:5px\"\|\<big\>\'\'\'\[\[Wikipedia:WikiProject U.S. Roads\|\<span style\=\"color:white\"\>The U.S. Roads WikiProject\<\/span\>\]\] Newsletter\'\'\'\<\/)div\>/gi, '$1big\>');
  str = str.replace(/(\| \'\'\'\[\[Wikipedia:WikiProject U\.S\. Roads\/Newsletter\/Issues\/Issue\d+#State[a-z ]*updates\|State[a-z ]*updates\]\])\n/gmi, '$1\'\'\'\n');

  str = str.replace(/( \(UTC\))(\n:)(\'\'If this is[^\n]+\<\/del\>)/gmi, '$1\<\/del\>$2\<del\>$3');

  //tennis Outcomes or Score
  str = str.replace(/^(!style\=\"width:\d\d+px\"\|\'\'\'[A-Z][a-z ]+)(\n)/gm, '$1\'\'\'$2');
  str = str.replace(/^(!style\=\"width:\d\d+px\" class\=\"unsortable\"\|\'\'\'[A-Z][a-z ]+)(\n)/gm, '$1\'\'\'$2');
  str = str.replace(/^(\|width=\"\d\d+\"\|\'\'\'[A-Z][a-z ]+)(\n)/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\|width=\"\d\d+\"\|\'\'\'[A-Z][a-z ]+)(\n)/gmi, '$1\'\'\'$2');

  //ski world cup
  str = str.replace(/^(\| *align=\"*[a-z]+\"* *width=\"*\d+\"* *\| *\'\'\'[a-z ]+)\s*(\n)/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\| *align=\"*[a-z]+\"* *width=\"*\d+\"* *\| *\{\{Abbr\|\'\'\'[a-z ]+)(\|[a-z \}]+)\s*(\n)/gmi, '$1\'\'\'$2$3');

  str = str.replace(/\'\'\'\{\{bartable/gi, '\{\{bartable'); //bold can't wrap bartable template

  str = str.replace(/(\| *list1\=)<\/span\>/gi, '$1');

  str = str.replace(/(\|\| *\'\'\'[\d\,\-–½—]+)( *\n)/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *align=\"*[a-z]+\"* *\| *\'\'\'[\d\,]+)\s*(\n)/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *rowspan= *\d *\| *\'\'\'[\d\,a-z ]+)\s*(\n)/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *rowspan= *\d *\| *\d *\'\'\'[\d\,a-z]+)\s*(\n)/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *scope=row style=\"text\-align:center\" *\| *\'\'\'[\d\,]+)\s*(\n)/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *\<center\>[a-z\d\[\]\-\(\)]+)\<center\>(\n)/gi, '$1\<\/center\>$2'); //close two open center...center tags
//  str = str.replace(/(\|\<center\>[\d\'\[\]\|]+)\s*(\n)/gi, '$1\<\/center\>$2'); // too many false positives
  str = str.replace(/^(\| *\<center\>[\d\'\[\]\|a-z \&\}\{]+)\s*(\n+\|)/gmi, '$1\<\/center\>$2');
  str = str.replace(/^(\! *\<center\>[\d\'\[\]\|a-z \&\}\{]+)\s*(\n+\|)/gmi, '$1\<\/center\>$2');
  //all-purpose center tag replacement
  str = str.replace(/\<center\>([\d\'a-z \%\&\|\}\{\-\.\,\(\)–—\*:\+ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?⊕⊗会話投稿記録日本穣投稿]+)\<\/center\>/gi, '\{\{center\|$1\}\}');  

  // center tags around images
  str = str.replace(/\<center>(\[\[[ImageFile]+:[^\]]+)\]\]<\/center>/gi, '$1\|center\]\]');
  str = str.replace(/(\[\[[ImageFile]+:[^\]]+\|center\|[^\]]+)\|center\]\]/gi, '$1\]\]');

  //center tags around featured picture/sound promoted message
  str = str.replace(/\<center>(\'\'\'Your \[\[Wikipedia:[a-z ]+\|[a-z ]+\]\] has been promoted\'\'\')<\/center>/gi, '{{center\|1=$1}}');

  str = str.replace(/^(\|\s*\<s\>[a-z \d\,\-–\.\[\]\(\)\|\'\:]+)(\s*\n+\|)/gmi, '$1\<\/s\>$2');
  str = str.replace(/(\|\s*\<s\>[a-z \d\,\-–\.\[\]\(\)\'\:]+)(\s*\|)/gi, '$1\<\/s\>$2');
  str = str.replace(/\|\'\'replay\|\|/gi, '\|\'\'replay\'\'\|\|');
  str = str.replace(/^(\|) *\'\'\'(\n+\|)/gmi, '$1$2');
  str = str.replace(/^(\| *\'\'\'[a-z \d\,\-–—\.\[\]\(\):\%áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n+\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\| *\'\'\'[a-z \d\,\-–—\.\[\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+\|[a-z \d\,\-–\.\]\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+)(\n+\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\| *\'\'[a-z \d\,\-–—\.\[\]\(\):áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n+\|)/gmi, '$1\'\'$2');
  str = str.replace(/^(\| *\'\'[a-z \d\,\-–—\.\[\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+\|[a-z \d\,\-–\.\]\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+)(\n+\|)/gmi, '$1\'\'$2');
  str = str.replace(/(\|\| *\'\'\'[a-z \d\,\-–—\.\[\]\(\):áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n+\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\|\| *\'\'\'[a-z \d\,\-–—\.\[\]\(\):áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\|\|)/gi, '$1\'\'\'$2');
  str = str.replace(/(\|\| *\'\'\'[a-z \d\,\-–—\.\[\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+\|[a-z \d\,\-–\.\]\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+)(\n+\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\|\| *\'\'[a-z \d\,\-–—\.\[\]\(\):áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n+\|)/gmi, '$1\'\'$2');
  str = str.replace(/(\|\| *\'\'[a-z \d\,\-–—\.\[\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+\|[a-z \d\,\-–\.\]\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+)(\n+\|)/gmi, '$1\'\'$2');
  str = str.replace(/(\| *\'\'\'[\[\|a-z\d,\-–— \(\)\.:áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+\]\]) *(\|\|)/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *\'\'[\[\|a-z\d,\-–— \(\)\.:áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+\]\]) *(\|\|)/gi, '$1\'\'$2');
  str = str.replace(/(\| *\'\'\'[WL])(\]\]\n)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\{\{Nowrap\|\'\'\'Matches on Main Courts)(\}\})/gi, '$1\'\'\'$2');
  str = str.replace(/^(\|[a-z\d ]+\'\'\'[a-z \d\,\-–\.\[\]\(\)]+)(\n+\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\|[a-z\d ]+\'\'[a-z \d\,\-–\.\[\]\(\)]+)(\n+\|)/gmi, '$1\'\'$2');
  str = str.replace(/([\|\!] *\<small\>[a-z \d\,\-–\.\[\]\(\)\t\?\;]+)(\n+[\|\!])/gmi, '$1\<\/small\>$2');
  str = str.replace(/([\|\!] *\<small\> *)(\n+[\|\!])/gmi, '$1\<\/small\>$2');
  str = str.replace(/^( *\| *RD\db*\-[teamscoreseed\-\d]+ *\= *'''[a-z \d½\,\-–\.\[\]\(\)\{\}\|\/\<\>]+)(\n+ *\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/^( *\| *RD\db*\-[teamscoreseed\-\d]+ *\= *'''[a-z \d½\,\-–\.\[\]\(\)\{\}\|\/\<\>]+)(\n *\}\})/gmi, '$1\'\'\'$2');
  str = str.replace(/^( *\| *team\d *\= *'''[\[\]\da-z \-\.]+)(\n *\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/^( *\| *team\d *\= *'''[\[\da-z \-\.]+\|[\]\da-z \-\.]+)(\n *\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/^( *\| *team\d *\= *''[\[\]\da-z \-\.]+)(\n *\|)/gmi, '$1\'\'$2');
  str = str.replace(/^( *\| *team\d *\= *''[\[\da-z \-\.]+\|[\]\da-z \-\.]+)(\n *\|)/gmi, '$1\'\'$2');

  str = str.replace(/^(\| *align\=\"*[centerlfigh]+\"* *\|\d* *\'\'\'[\[\]\d½a-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\? \-\.\–\,\+:\&\;\t\"\%\/\(\)]+)(\n\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\| *align\=\"*[centerlfigh]+\"* *\|\d* *\'\'[\[\]\d½a-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\? \-\.\–\,\+:\&\;\t\"\%\/\(\)]+)(\n\|)/gmi, '$1\'\'$2');
  str = str.replace(/^(\| *align\=\"*[centerlfigh]+\"* *\|\d* *\'\'\'[\[\d½a-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\? \-\.\–\,\+:\&\;\t\"\%\/\(\)]+\|[\]\da-z \-\.\–\,:\&\;\t\"\%]+)(\n\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\| *align\=\"*[centerlfigh]+\"* *\|\d* *\'\'[\[\d½a-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\? \-\.\–\+:\&\;\t\"\%\/\(\)]+\|[\]\da-z \-\.\–:\&\;\t\"\%]+)(\n\|)/gmi, '$1\'\'$2');

  str = str.replace(/^([\|\!] *colspan *\= *\d+ *\| *\'\'\'[\[\]\(\)\d½a-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?, \-\.\–\&]+)(\n\|)/gmi, '$1\'\'\'$2');

  str = str.replace(/^([\|\!] *colspan *\= *\d+ *\| *\'\'[\[\]\(\)\d½a-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?, \-\.\–\&]+)(\n\|)/gmi, '$1\'\'$2');

  str = str.replace(/^(\| *align\=\"[centerlfigh]+\" \| *\<s\>[\[\]\d½a-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?, \-\.\–\:\/\(\)\&]+)(\n\|)/gmi, '$1\<\/s\>$2');
  str = str.replace(/^(\| *align\=\"[centerlfigh]+\" \| *\<s\>[\[\d½a-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\? \-\.\–\:\/\(\)\&]+)(\n\|)/gmi, '$1<\/s\>$2');

  str = str.replace(/^(\* \<div style\=\"color\: \#\d+\;\"\> *[\[\da-záàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?, \-\.\–\&]+)(\n[\*\|])/gmi, '$1\<\/div\>$2');

  str = str.replace(/^(\| *\{\{Flagicon\|[a-z]+\}\} *\'\'\' *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n[\*\|])/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\| *\{\{Flagicon\|[a-z]+\}\} *\'\'\' *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+[\<\br/\> ]+\{\{Flagicon\|[a-z]+\}\}[\<\br/\> ]+[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n[\*\|])/gmi, '$1\'\'\'$2');
  str = str.replace(/^(\| *\'\'\'\{\{Flagicon\|[a-z]+\}\} *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n[\*\|])/gmi, '$1\'\'\'$2');

  str = str.replace(/(\|\| *\{\{Flagicon\|[a-z]+\}\} *\'\'\' *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\|\|)/gi, '$1\'\'\'$2');
  str = str.replace(/(\|\| *\'\'\'\{\{Flagicon\|[a-z]+\}\} *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\|\|)/gi, '$1\'\'\'$2');
  str = str.replace(/(\{\{nowrap\| *\'\'\'\{\{Flagicon\|[a-z]+\}\} *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&\|]+)(\}\})/gi, '$1\'\'\'$2');
  str = str.replace(/(\{\{nowrap\| *\'\'\'\{\{Flagicon\|[a-z]+\}\} *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&\|]+[\<br\/\> ]+{\{Flagicon\|[a-z]+\}\} *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&\|]+)(\}\})/gi, '$1\'\'\'$2');
  str = str.replace(/(\{\{nowrap\| *\{\{Flagicon\|[a-z]+\}\} *\'\'\'[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&\|]+[\<br\/\> ]+{\{Flagicon\|[a-z]+\}\} *[\[\]\da-z \-\.\(\)áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&\|]+)(\}\})/gi, '$1\'\'\'$2');

  str = str.replace(/(\{\{flagicon\|[A-Z]+[\|\d]*\}\} *\'\'\'.*\]) *(\n[\*\|])/gmi, '$1\'\'\'$2');
  str = str.replace(/(\'\'\'\{\{flagicon\|[A-Z]+\}\} .*\])(\n[\*\|])/gmi, '$1\'\'\'$2');

  str = str.replace(/(\| *\'\'\'\{\{flagIOC2*athlete\|[\[\da-z \-\.\(\)–áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&\|\]]+\}\})\n/gmi, '$1\'\'\'\n');


  str = str.replace(/(\| *\'\'\'\{\{flagIOC2[\-rt]*\|[a-z]+\|[\[\da-z \-\.\(\)–áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&\|\]]+\}\})\n/gmi, '$1\'\'\'\n');

  str = str.replace(/(\| *\'\'\'\{\{bd\-big\|[a-z ]+\}\})(\n\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\| *\'\'\'\{\{hb[ywj]*\-big\|[a-z ]+\|\d+\}\})(\n\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\| *\'\'\'\{\{hb[ywj]*\-big\|[a-z ]+\}\})(\n\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\| *\'\'\'\{\{[rb][hb][ywm]*\-rt\|[a-z]+\}\})(\n\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\| *\'\'\'\{\{[rb][hb][ywm]*\|[a-z]+\}\})(\n\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\| *\'\'\'\{\{ru\-big\|[a-z]+\}\})(\n\|)/gmi, '$1\'\'\'$2');

  str = str.replace(/^(\|colspan\=\"\d\"\|\{\{Flagicon\|[a-z]+\}\} *\<small\> *[\[\]\da-z \-\.\(\)\'áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n[\*\|])/gmi, '$1\<\/small\>$2');
  str = str.replace(/^(\|\{\{Flagicon\|[a-z]+\}\} *\<small\> *[\[\]\da-z \-\.\(\)\'áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n[\*\|])/gmi, '$1\<\/small\>$2');
  str = str.replace(/^(\|colspan\=\"\d\"\|\{\{Flagicon\|[a-z]+\}\} *\<small\> *[\[\da-z \-\.\(\)\'áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+\|[\]\da-z \-\.\(\)\'áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n[\*\|])/gmi, '$1\<\/small\>$2');
  str = str.replace(/^(\|\{\{Flagicon\|[a-z]+\}\} *\<small\> *[\[\da-z \-\.\(\)\'áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+\|[\]\da-z \-\.\(\)\'áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&]+)(\n[\*\|])/gmi, '$1\<\/small\>$2');

  str = str.replace(/(\|\<\!\-\-ALL\-X\-\-\>\'\'\'\d+) *(\n+\|)/gmi, '$1\'\'\'$2');
  str = str.replace(/(\<\!\-\- *T *\-\-\>\| *\'\'\'\d+) *(\n+\|)/gmi, '$1\'\'\'$2');

  str = str.replace(/(\{\{[Yes\-No]+\|'''[A-Z]+)(\}\})/g, '$1\'\'\'$2');

  //str = str.replace(/\'\'\'(\<\/small\>)/gi, '$1'); // temp for a group of articles

  str = str.replace(/(\<small\>\<center\>Uncredited)\<center\>\<small\>/gi, '$1\<\/center\>\<\/small\>'); //film articles edited by IP

  str = str.replace(/(\d+\.\d+\%\'* \'\'[\d,]+) *(\n)/gmi, '$1\'\'$2');

  str = str.replace(/(\|\&nbsp;\'\'\'OC\&nbsp\;)(\|\|)/gi, '$1\'\'\'$2');
  str = str.replace(/(\|\&nbsp;'''1\&nbsp\;)(\|\|)/gi, '$1\'\'\'$2');
  str = str.replace(/(\|\&nbsp;\'\'\'CC\&nbsp\;)(\|\|)/gi, '$1\'\'\'$2');

  //GA Good article nominations and reviews
  str = str.replace(/<span style="color:#512888">(}})/gi, '$1');

  //Darts and tennis articles
  str = str.replace(/(\'\'\(Finals*\)) *(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\'\'\(First round\)) *(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\'\'\(Second round\)) *(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\'\'\(Third round\)) *(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\'\'\(Fourth round\)) *(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\'\'\(Semi[\- ]*finals*\)) *(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\'\'\(Quarter[\- ]*finals*\)) *(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\'\'\(Runner-Up\)) *(\n)/gmi, '$1\'\'$2');
  str = str.replace(/(^\# *\'\'\'.*\(Champions*\)) *(\n)/gmi, '$1\'\'\'$2');

  //str = str.replace(/ <\/span>/gi, ' ');
  //str = str.replace(/ <\/font>/gi, ' ');

  //Bogus file/image options
  str = str.replace(/(\.jpg\|left\|)none\|/g, '$1');
  str = str.replace(/(\.JPG\|left\|)none\|/g, '$1');
  str = str.replace(/\|thumb(\|\d+px\|thumb\|)/g, '$1');
  str = str.replace(/\|left(\|\d+px\|left)/g, '$1');
  str = str.replace(/(\|none\|\d+px)\|left/g, '$1');
  str = str.replace(/(\[\[image:Rock dove \- natures pics.jpg\|thumb\|)width:320px\|height:100px\|(HELLO\]\])/g, '$1$2');
  str = str.replace(/(\|180px)px(\|thumb)/g, '$1$2');
  str = str.replace(/\|\{\{\#if:\{\{\{size\|\}\}\}\|\{\{\{size\}\}\}\|\d+px\}\}\|frame\|/gi, '\|frame\|');
  str = str.replace(/\| *upright \=/gi, '\|upright\=');
  str = str.replace(/\| *upright\=\|/gi, '\|upright\|');
  str = str.replace(/\|frame\|right\|float\|/gi, '\|frame\|right\|');
  str = str.replace(/\|frame\|left\|float\|/gi, '\|frame\|left\|');
  str = str.replace(/\|мини\|/gi, '\|thumb\|'); //mini, invalid option
  str = str.replace(/\|mini\|/g, '\|thumb\|'); //mini, invalid option, needs to be at the top of this list above thumb|thumb
  str = str.replace(/\|miniatyr\|/gi, '\|thumb\|'); //mini, invalid option
  str = str.replace(/\|thumb\|right\|thumb\|/gi, '\|thumb\|right\|');
  str = str.replace(/\|thumb\|Right\|/g, '\|thumb\|right\|');
  str = str.replace(/\|Right\|thumb\|/g, '\|thumb\|right\|');
  str = str.replace(/\|thumb\|Left\|/g, '\|thumb\|left\|');
  str = str.replace(/\|thumb\|left\|thumb\|/g, '\|thumb\|left\|');
  str = str.replace(/\|thumb\|right\|thumb\|/g, '\|thumb\|right\|');
  str = str.replace(/\|right\|thumb\|left\|/g, '\|right\|thumb\|');
  str = str.replace(/\|center\|thumb\|left\|/g, '\|center\|thumb\|');
  str = str.replace(/\|left\|thumb\|right\|/g, '\|left\|thumb\|');
  str = str.replace(/\|left\|thumb\|left\|/g, '\|left\|thumb\|');
  str = str.replace(/\|left\|thumb\|center\|/g, '\|left\|thumb\|');
  str = str.replace(/\|thumb\|righ\|/g, '\|thumb\|right\|');
  str = str.replace(/\|thumb\|rt\|/g, '\|thumb\|right\|');
  str = str.replace(/\|rt\|thumb\|/g, '\|thumb\|right\|');
  str = str.replace(/\|thumbnail\|default\|/g, '\|thumb\|');
  str = str.replace(/\|thump\|/g, '\|thumb\|');
  str = str.replace(/\|thumb\|thumb\|/gi, '\|thumb\|');
  str = str.replace(/\|thumb\|thumbnail\|/gi, '\|thumb\|');
  str = str.replace(/\|frameless\|thumb([\|\]])/gi, '\|frameless$1');
  str = str.replace(/\|frame\|thumb\|/gi, '\|frame\|');
  str = str.replace(/\|thumb\|frame\|/gi, '\|thumb\|');
  str = str.replace(/\|frame\|left\|thumb\|/gi, '\|frame\|left\|');
  str = str.replace(/\|right\|right\|/gi, '\|right\|');
  str = str.replace(/\|right\|125px\|center\]\]/gi, '\|right\|125px\]\]');
  str = str.replace(/\|thumb\|\|/gi, '\|thumb\|');
  str = str.replace(/\|thumbnail\|\|/gi, '\|thumbnail\|');
  str = str.replace(/\|\|thumb\|/gi, '\|thumb\|');
  str = str.replace(/\|\|upright/gi, '\|upright');
  str = str.replace(/\|hochkant\|/gi, '\|upright\|');
  str = str.replace(/\|hochkant\=/gi, '\|upright\=');
  str = str.replace(/\|rahmenlos\|/gi, '\|frameless\|');
  str = str.replace(/\|zentriert\|/gi, '\|center\|');
  str = str.replace(/\|uoright/gi, '\|upright');
  //str = str.replace(/\|upright\|\|/gi, '\|'); //remove upright without a scaling factor, deprecated MOS:UPRIGHT
  str = str.replace(/\|up[rt]ight\|up[rt]ight/gi, '\|upright'); //remove duplicate upright
  str = str.replace(/\|uptigh+t\|/gi, '\|upright\|'); 
  str = str.replace(/\|right\|\|/gi, '\|right\|');
  str = str.replace(/\|left\|\|/gi, '\|left\|');
  str = str.replace(/\|\|right\|/gi, '\|right\|');
  str = str.replace(/\|\|left\|/gi, '\|left\|');
  str = str.replace(/(\|thumb\|right\|\d+px\|)left\|/gi, '$1');
  str = str.replace(/(\|none\|thumb\|\d+px\|)left\|/gi, '$1');
  str = str.replace(/(\|thumb\|none\|)left\|/gi, '$1');
  str = str.replace(/(\|thumb\|left\|)none\|/gi, '$1');
  str = str.replace(/(\|thumb\|right\|)none\|/gi, '$1');
  str = str.replace(/(\|none\|thumb\|)left\|/gi, '$1');
  str = str.replace(/(\|none\|thumb\|)right\|/gi, '$1');
  str = str.replace(/\|righ\|/gi, '\|right\|');
  str = str.replace(/\|ight\|/gi, '\|right\|');
  str = str.replace(/\|праворуч\|/gi, '\|right\|');
  str = str.replace(/\|дясно\|/gi, '\|right\|');
  str = str.replace(/\|справа\|/gi, '\|right\|');
  str = str.replace(/\|rechts\|/gi, '\|right\|');
  str = str.replace(/\|dreta\|/gi, '\|right\|');
  str = str.replace(/\|destra\|/gi, '\|right\|');
  str = str.replace(/\|sağ\|/gi, '\|right\|');
  str = str.replace(/\|derecha\|/gi, '\|right\|');
  str = str.replace(/\|direita\|/gi, '\|right\|');
  str = str.replace(/\|desno\|/gi, '\|right\|');
  str = str.replace(/\|ліворуч\|/gi, '\|left\|');
  str = str.replace(/\|gauche\|/gi, '\|left\|');
  str = str.replace(/\|esquerra\|/gi, '\|left\|');
  str = str.replace(/\|izquierda\|/gi, '\|left\|');
  str = str.replace(/\|שמאל\|/gi, '\|left\|');
  str = str.replace(/\|ממוזער\|/gi, '\|thumb\|');
  str = str.replace(/svg\|bgcolor=silver\|30px\|/gi, 'svg\|30px\|');
  str = str.replace(/svg\|bgcolor=silver\|28px\|/gi, 'svg\|28px\|');
  str = str.replace(/\|60px\|Red Ensign\|United Kingdom/gi, '\|60px\|United Kingdom civil ensign');
  str = str.replace(/\|time=\d+\|/gi, '\|'); //invalid option
  str = str.replace(/\|\d+pcx\|/gi, '\|'); //specifying size is deprecated (MOS:UPRIGHT), and this setting is invalid, so remove instead
  str = str.replace(/\|px *(\d+)\|/gi, '\|'); //specifying size is deprecated, and this setting is invalid, so remove instead
  str = str.replace(/\|upleft\|/gi, '\|'); //remove nonsense "upleft"; upright is deprecated MOS:UPRIGHT
  str = str.replace(/\|float\|/gi, '\|'); //float, invalid option
  str = str.replace(/\|miniatur[ea]*\|/gi, '\|thumb\|'); //mini, invalid option
  str = str.replace(/\|miniaturadeimagen\|/gi, '\|thumb\|'); //mini, invalid option
  str = str.replace(/\|r[ou]ght\|/gi, '\|right\|');
  //str = str.replace(/\|image\|/gi, '\|'); //image, invalid option // commented because it breaks too many template doc pages
  str = str.replace(/\|thumb\|upright\|thumb\|/gi, '\|thumb\|upright\|');
  str = str.replace(/\|upright\|thumb\|upright\|/gi, '\|thumb\|upright\|');
  str = str.replace(/\|right\|thumb\|right\|/gi, '\|thumb\|right\|');
  str = str.replace(/\|center\|none([\|\]])/gi, '\|center$1');
  str = str.replace(/\|center\|right([\|\]])/gi, '\|center$1');
  str = str.replace(/\|centre\|right([\|\]])/gi, '\|center$1');
  str = str.replace(/\|thumb\|right\|frame\|/gi, '\|thumb\|right\|');
  str = str.replace(/\|vertical\|/gi, '\|'); //vertical, invalid option
  str = str.replace(/\|vignette\|/gi, '\|thumb\|'); //vignette, invalid option
  str = str.replace(/\|left\|right\|/gi, '\|left\|');
  str = str.replace(/\|right\|left\|/gi, '\|right\|');
  str = str.replace(/\|border\|border\|/gi, '\|border\|');
  str = str.replace(/\|alternativtext=/gi, '\|alt=');
  str = str.replace(/\|\|(\d+px\|)/gi, '\|$1'); // may have false positives
  str = str.replace(/\|(\d\d\d) *[xp]px\|/gi, '\|$1px\|'); // may have false positives
  str = str.replace(/\|(\d\d)opx\|/gi, '\|$10px\|'); // may have false positives
  str = str.replace(/\|(\d)o(\d)px\|/gi, '\|$10$2px\|'); // may have false positives
  str = str.replace(/\|(\d)oopx\|/gi, '\|$100px\|'); // may have false positives
  str = str.replace(/(\|thumb)\|widthpx\| *(\]\])/gi, '$1$2'); 
  str = str.replace(/\|widthpx\|/gi, '\|'); // may have false positives
  str = str.replace(/\|smallpx\|/gi, '\|'); // may have false positives
  str = str.replace(/\|mediumpx\|/gi, '\|'); // may have false positives
  str = str.replace(/\|thumbpx\|/gi, '\|'); // may have false positives
  str = str.replace(/\|bigpx\|/gi, '\|'); // may have false positives
  str = str.replace(/\|minipx\|/gi, '\|'); // may have false positives
  str = str.replace(/\|(\d+) *px *(\d+) *px/gi, '\|$1x$2px'); // may have false positives
  str = str.replace(/\|(\d+) *[×\*X] *(\d+) *px/g, '\|$1x$2px'); // may have false positives
  str = str.replace(/\|(\d+) +[x] +(\d+) *px/gi, '\|$1x$2px'); // may have false positives
  str = str.replace(/\|(\d+)\.\d+x(\d+)\.\d+ *px/gi, '\|$1x$2px'); // may have false positives
  str = str.replace(/\|(\d+)\.\d+ *px/gi, '\|$1px'); // may have false positives
  str = str.replace(/(\|\s*[log_imaep]+alt\s*\=\s*)\d+px/gi, '$1'); // for infoboxen; may have false positives
  str = str.replace(/(\{\{tick\|\d+)px(\}\})/gi, '$1$2'); // fix pxpx error
  str = str.replace(/(\[\[[Imagfl]+e:[a-z ]+.[sp][nv]g\|\d+px)\|✓(\|[Featured articleDid you knowGoodlist\?]+\]\])/gi, '$1$2'); 
  str = str.replace(/(\[\[Image:Emblem\-very\-very\-evil.svg\|15)p(x25px\|)/gi, '$1$2'); 
  str = str.replace(/(\nFile:.+)\|thumb[nail]*(\|.*\n)/gmi, '$1$2');  //replace thumb in gallery
  str = str.replace(/(\nFile:.+)\|thumb[nail]*(\|.*\n)/gmi, '$1$2');  //replace thumb in gallery (again for consecutive lines)
  str = str.replace(/(\nImage:.+)\|thumb[nail]*(\|.*\n)/gmi, '$1$2');  //replace thumb in gallery
  str = str.replace(/(\nImage:.+)\|thumb[nail]*(\|.*\n)/gmi, '$1$2');  //replace thumb in gallery (again for consecutive lines)
  str = str.replace(/(\n[FileImage]+:.+)\|left(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery
  str = str.replace(/(\n[FileImage]+:.+)\|left(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery (again for consecutive lines)
  str = str.replace(/(\n[FileImage]+:.+)\|right(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery
  str = str.replace(/(\n[FileImage]+:.+)\|right(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery (again for consecutive lines)
  str = str.replace(/(\n[FileImage]+:.+)\|center(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery
  str = str.replace(/(\n[FileImage]+:.+)\|center(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery (again for consecutive lines)
  str = str.replace(/(\n[FileImage]+:.+)\|none(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery
  str = str.replace(/(\n[FileImage]+:.+)\|none(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery (again for consecutive lines)
  str = str.replace(/(\n[FileImage]+:.+)\|border(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery
  str = str.replace(/(\n[FileImage]+:.+)\|border(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery (again for consecutive lines)
  str = str.replace(/(\n[FileImage]+:.+)\|upright(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery
  str = str.replace(/(\n[FileImage]+:.+)\|upright(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery (again for consecutive lines)
  str = str.replace(/(\n[FileImage]+:.+)\|frame[d]*(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery
  str = str.replace(/(\n[FileImage]+:.+)\|frame[d]*(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery (again for consecutive lines)
  str = str.replace(/(\n[FileImage]+:.+)\|frameless(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery
  str = str.replace(/(\n[FileImage]+:.+)\|frameless(\|.*\n)/gmi, '$1$2');  //replace invalid in gallery (again for consecutive lines)
  str = str.replace(/\|[\dxKb\.\* ]+px(\|framed*\|left\|)/gi, '$1');
  str = str.replace(/\|[\dxKb\.\* ]+px(\|framed*\|right\|)/gi, '$1');
  str = str.replace(/\|[\dxKb\.\* ]+px(\|framed*\|center\|)/gi, '$1');
  str = str.replace(/\|[\dxKb\.\* ]+px(\|framed*\|none\|)/gi, '$1');
  str = str.replace(/(\|framed*\|left\|)\d\d+px\|/gi, '$1');
  str = str.replace(/(\|framed*\|right\|)\d\d+px\|/gi, '$1');
  str = str.replace(/(\|framed*\|center\|)\d\d+px\|/gi, '$1');
  str = str.replace(/(\|framed*\|none\|)\d\d+px\|/gi, '$1');


  //div-span-flip error
  str = str.replace(/\{\{nowrap\|(\{\{marriage *\|[\s\,a-z\d\[\]\-\(\) \>\<\=\.\/\|áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+)\}\}/gi, '$1');
  str = str.replace(/\<span class\=\"plainlinks\"\>(<references\/\>)\<\/span\>/gi, '$1');
  str = str.replace(/\<span class\=\"plainlinks\"\>(\{\{reflist\}\})\<\/span\>/gi, '$1');
  //str = str.replace(/\{\{hidden\|\|(.*}})}}/gi, '$1'); -- hidden content is sometimes OK
  str = str.replace(/\{\{no *wrap\|(\{\{[hplainflatlistunbulleted ]+)\|/gi, '$1\|class\=nowrap\|');
  str = str.replace(/\<span style\=\"(font\-size\:110\%\; font\-weight\:bold\;)\"\>(\{\{Plainlist\|)\n([\{\}a-z\d\/\*\:\'\n ]+)\<\/span\>/gmi, '$2style\=$1\|\n$3');

  //smile template with pipe in signature causes misnested tag
  str = str.replace(/{{{1\|([^}]+<\/su[bp][^}]+)}}}( has smiled at you!)/gi, '$1$2');
  str = str.replace(/{{{1\|([^}]+<\/small[^}]+)}}}( has smiled at you!)/gi, '$1$2');

  //small tag or template wrapping multiple lines
  str = str.replace(/(\{\{small)\|(\{\{[hplainflatlistunbulleted ]+\|)/gi, '$1div\|$2');
  str = str.replace(/(\{\{small)\|(\{\{legend\|)/gi, '$1div\|$2');
  str = str.replace(/(\{\{small)(\|\n\*)/gmi, '$1div$2');


  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\> *(\n[\*\#\;].*)\n*<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');

  str = str.replace(/\<small\>(\'\'\'Key\'\'\': *\n\*.*\n)<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\>(\'\'\'Key\'\'\': *\n\*.*\n\*.*\n)<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\>(\'\'\'Key\'\'\': *\n\*.*\n\*.*\n\*.*\n)<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\>(\'\'\'Key\'\'\': *\n\*.*\n\*.*\n\*.*\n\*.*\n)<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\>(\'\'\'Key\'\'\': *\n\*.*\n\*.*\n\*.*\n\*.*\n\*.*\n)<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');
  str = str.replace(/\<small\>(\'\'\'Key\'\'\': *\n\*.*\n\*.*\n\*.*\n\*.*\n\*.*\n\*.*\n)<\/small\>/gmi, '\{\{smalldiv\|1=$1\}\}');

  str = str.replace(/\;\<small\>(Notes *\n.*)<\/small\>/gmi, '\{\{smalldiv\|1=;$1\}\}');

  str = str.replace(/\<strike\>/gi, '\<s\>');
  str = str.replace(/\<\/strike\>/gi, '\<\/s\>');
  str = str.replace(/\<strike out\>/gi, '\<s\>');
  str = str.replace(/\<\/strike out\>/gi, '\<\/s\>');

  //strikethroughdiv to replace misnested s tags (not better, probably suffers from LISTGAP)
  //str = str.replace(/^([:\*]+)\<s\>(.*\n[:\*\#\;].*)<\/s\>/gmi, '\{\{strikethroughdiv\|1=$1$2\}\}');
  //str = str.replace(/^([:\*]+)\<s\>(.*\n[:\*\#\;].*\n[:\*\#\;].*)<\/s\>/gmi, '\{\{strikethroughdiv\|1=$1$2\}\}');
  //str = str.replace(/^:\<s\>(.*\n[:\*\#\;].*)<\/s\>/gmi, '\{\{strikethroughdiv\|1=:$1\}\}');


  //Fix RfD pages (my slightly bad template to the new completely fixed one)
  //str = str.replace(/\'\'(\(\@subpage\))\'\'(|\<span class\=\"plainlinks\"\>\[)/gi, '$1$2');

  //font wrapping links - move inside link and convert to span tag - hex with #
  str = str.replace(/<font +colou*r=["']* *(#[a-f\d]+)["']*>(\[\[User:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *(#[a-f\d]+)["']*>(\[\[Special:Contributions\/[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *(#[a-f\d]+)["']*>(\[\[User[ _]talk:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');

  //font wrapping links - move inside link and convert to span tag - hex without #
  str = str.replace(/<font +colou*r=["']* *([a-f\d]+)["']*>(\[\[User:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:#$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *([a-f\d]+)["']*>(\[\[Special:Contributions\/[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:#$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *([a-f\d]+)["']*>(\[\[User[ _]talk:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:#$1;">$3<\/span>$4');

  //font wrapping links - move inside link and convert to span tag - alpha and spaces (excludes some colors to avoid false hex positives)
  str = str.replace(/<font +colou*r=["']* *([a-z]+[g-z][a-z ]+)["']*>(\[\[User:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *([a-z]+[g-z][a-z ]+)["']*>(\[\[Special:Contributions\/[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *([a-z]+[g-z][a-z ]+)["']*>(\[\[User[ _]talk:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *([g-z][a-z ]+)["']*>(\[\[User:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *([g-z][a-z ]+)["']*>(\[\[Special:Contributions\/[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');
  str = str.replace(/<font +colou*r=["']* *([g-z][a-z ]+)["']*>(\[\[User[ _]talk:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$2<span style="color:$1;">$3<\/span>$4');


  //font wrapping links - move inside link and convert to span tag - with font face
  str = str.replace(/<font +colou*r=["']* *([#a-z\d ]+)["']* +face="* *([a-z ]+)"*>(\[\[User:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$3<span style="color:$1; font-family:\'$2\';">$4<\/span>$5');
  str = str.replace(/<font +colou*r=["']* *([#a-z\d ]+)["']* +face="* *([a-z ]+)"*>(\(*\[\[User[ _]talk:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\]\)*)<\/font *>/gi, '$3<span style="color:$1; font-family:\'$2\';">$4<\/span>$5');

  str = str.replace(/<font face="* *([a-z ]+)"* +colou*r=["']* *([#a-z\d ]+)["']*>(\[\[User:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\])<\/font *>/gi, '$3<span style="color:$2; font-family:\'$1\';">$4<\/span>$5');
  str = str.replace(/<font face="* *([a-z ]+)"* +colou*r=["']* *([#a-z\d ]+)["']*>(\(*\[\[User[ _]talk:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)(\]\]\)*)<\/font *>/gi, '$3<span style="color:$2; font-family:\'$1\';">$4<\/span>$5');

  //replace font tag in user and user talk links with span tag, while I'm here
  str = str.replace(/\<\/font face>/gi, '\<\/font\>'); // trim closing font face tag
  str = str.replace(/\<\/font col+[ao]r>/gi, '\<\/font\>'); // trim closing font color tag
  str = str.replace(/\<\/font face color>/gi, '\<\/font\>'); // trim closing font face color tag
  str = str.replace(/\<\/font size[=\d]*>/gi, '\<\/font\>'); // trim closing font size tag

  str = str.replace(/\<font( style\=\"background:[a-z]+\"\>\'+bd2412\'+\<\/)font *>/gi, '\<span$1span\>'); //specific user's sig

  str = str.replace(/(\[\[User:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)<font +colou*r *= *["']* *([#a-z\d ]+)["']*>([a-z\d_— \'&;:!°\.#\(\)\-\?ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録✉]+)<\/font *> *(\]\])/gi, '$1<span style="color:$2;">$3<\/span>$4');
  str = str.replace(/(\[\[User[ _]talk:[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿✉]+\|)<font +colou*r *= *["']* *([#a-z\d ]+)["']*>([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?⊕⊗会話投稿記録✉]+)<\/font *> *(\]\])/gi, '$1<span style="color:$2;">$3<\/span>$4');
  str = str.replace(/(\[\[Special:Contributions\/[a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+\|)<font +colou*r *= *["']* *([#a-z\d ]+)["']*>([a-z\d_— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *> *(\]\])/gi, '$1<span style="color:$2;">$3<\/span>$4');

  //replace all deprecated font color tags enclosing untagged text
  str = str.replace(/<font +colou*r *= *["']* *([#a-z\d ]+)["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\@\!\?\&⊕⊗会話投稿記録日本穣投稿րևանցիԵ•✉☒☺✍♥♦₵ΛΧΣ★™ṈṞ]+)<\/font *>/gi, '<span style="color:$1;">$2<\/span>');
  str = str.replace(/<font style="colou*r:["']* *([#a-z\d ]+)["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\@\!\?\&⊕⊗会話投稿記録日本穣投稿րևանցիԵ•✉☒☺✍♥♦₵ΛΧΣ★™ṈṞ]+)<\/font *>/gi, '<span style="color:$1;">$2<\/span>');
  str = str.replace(/<font +colou*r *= *["']* *([#a-z\d ]+)["']* size="*([\dpxem\. ]+)"* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\@\!\?\&⊕⊗会話投稿記録日本穣投稿րևանցիԵ•✉☒☺✍♥♦₵ΛΧΣ★™ṈṞ]+)<\/font *>/gi, '<span style="color:$1; font-size:$2;">$3<\/span>');
  str = str.replace(/<font face *= *"* *([a-z ]+)"* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\@\!\?\&⊕⊗会話投稿記録日本穣投稿րևանցիԵ•✉☒☺✍♥♦₵ΛΧΣ★™ṈṞ]+)<\/font *>/gi, '<span style="font-family:\'$1\';">$2<\/span>');
  str = str.replace(/<font +colou*r *= *["']* *([#a-z\d ]+)["']* face= *"* *([a-z ]+)"* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\@\!\?\&⊕⊗会話投稿記録日本穣投稿րևանցիԵ•✉☒☺✍♥♦₵ΛΧΣ★™ṈṞ]+)<\/font *>/gi, '<span style="color:$1; font-family:\'$2\';">$3<\/span>');
  str = str.replace(/<font face= *"* *([a-z ]+)"* colou*r *= *["']* *([#a-z\d ]+)["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\@\!\?\&⊕⊗会話投稿記録日本穣投稿րևանցիԵ•✉☒☺✍♥♦₵ΛΧΣ★™ṈṞ]+)<\/font *>/gi, '<span style="font-family:\'$1\'; color:$2;">$3<\/span>');
  str = str.replace(/<font style *= *"color:([#a-z\d ]+);" *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\@\!\?\&⊕⊗会話投稿記録日本穣投稿րևանցիԵ•✉☒☺✍♥♦₵ΛΧΣ★™ṈṞ]+)<\/font *>/gi, '<span style="color:$1;">$2<\/span>');
  str = str.replace(/<font style *= *"([:#a-z\d ;\.\-]+)" *>([a-z\d_–— \'’&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\@\!\?\&⊕⊗会話投稿記録日本穣投稿րևանցիԵ•✉☒☺✍♥♦₵ΛΧΣ★™ṈṞ]+)<\/font *>/gi, '<span style="$1">$2<\/span>');


  //replace all deprecated font size tags enclosing untagged text
//<span style="font-size: xx-small;">  	(replacement for font size = 0 or -3)
//<span style="font-size: x-small;">  	(replacement for font size = 1 or -2)
//<span style="font-size:small"> 	(replacement for font size = 2 or -1)
//<span style="font-size:medium"> 	(replacement for font size = 3)
//<span style="font-size:large">  (replacement for font size = 4 or +1)
//<span style="font-size:x-large">  (replacement for font size = 5 or +2)
//<span style="font-size:xx-large">  (replacement for font size = 6 or +3)
//<span style="font-size: 378%">   (replacement for font size = 7 or +4 or higher)

  str = str.replace(/<font size *= *["']* *0 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:xx-small;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *\-3 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:xx-small;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *1 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:x-small;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *\-2 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:x-small;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *2 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:small;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *\-1 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:small;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *3 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:medium;">$1<\/span>');

  str = str.replace(/<font size *= *["']* *4 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:large;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *\+1 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:large;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *5 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:x-large;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *\+2 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:x-large;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *6 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:xx-large;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *\+3 *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:xx-large;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *[789] *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:378%;">$1<\/span>');
  str = str.replace(/<font size *= *["']* *\+[456789] *["']* *>([a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿]+)<\/font *>/gi, '<span style="font-size:378%;">$1<\/span>');


  //replace all deprecated font color tags enclosing tagged text
  str = str.replace(/<font +colou*r *= *["']* *([#a-z\d ]+)["']* *>(<[subpmali]+>[a-z\d_–— \'&;:!°\.#ταλκ\(\)\-\?\.,\!ößáàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?\&⊕⊗会話投稿記録日本穣投稿♦₵]+<\/[subpmali]+>)<\/font *>/gi, '<span style="color:$1;">$2<\/span>');

  //replace deprecated tt tags next to nowiki tags
  str = str.replace(/<tt> *(<nowiki>)/gi, '\<code\>$1');
  str = str.replace(/(<\/nowiki>) *<\/tt>/gi, '$1\<\/code\>');
  str = str.replace(/<tt> *(<big><nowiki>)/gi, '\<code\>$1');
  str = str.replace(/(<\/nowiki><\/big>) *<\/tt>/gi, '$1\<\/code\>');
  //replace deprecated tt tags with code tags (not always appropriate)
  //str = str.replace(/\<tt\>/gi, '\<code\>');
  //str = str.replace(/\<\/tt\>/gi, '\<\/code\>');

  //replace deprecated tt tags as emoticons
  str = str.replace(/\<tt\>( *[:;][DP\/\)\(\-]+) *\<\/tt\>/gi, '\{\{mono\|$1\}\}');

  //other tt tags
  str = str.replace(/<tt>({&#123;unblock&#124;\'\'reason\'\'&#125;})<\/tt>/gi, '<kbd>$1<\/kbd>');
  str = str.replace(/<tt>({&#123;\[\[:Template:unblock\-auto\|unblock\-auto\]\]&#124;\.\.\.&#125;})<\/tt>/gi, '<kbd>$1<\/kbd>');
  str = str.replace(/<tt><\/tt>/gi, '');
  str = str.replace(/<tt>(#wikimedia\-pa)<\/tt>/gi, '<kbd>$1<\/kbd>');
  str = str.replace(/<tt>(&lt;noinclude>&#123;{transclusionless}}&lt;\/noinclude>)<\/tt>/gi, '<code>$1<\/code>');
  str = str.replace(/<tt>({{<nowiki>subst:<\/nowiki>\[\[User:Meaghan\/Sunshine\]\]}})<\/tt>/gi, '<code>$1<\/code>');
  str = str.replace(/(<nowiki>{{db\-g12\|url=<\/nowiki><)tt(>URL of source<\/)tt(>}})/gi, '$1kbd$2kbd$3');
  str = str.replace(/(<nowiki>{{subst:copyvio\|url=<\/nowiki><)tt(>URL of source<\/)tt(>}})/gi, '$1kbd$2kbd$3');
  str = str.replace(/(<)tt(>{{Nospam\|[a-z\-]+\|wikipedia\.org}}<\/)tt(>)/gi, '$1kbd$2kbd$3');
  str = str.replace(/(should look like: <)tt(>\d+&[amp;]*nbsp;[a-z]+ *<\/)tt(>)/gi, '$1kbd$2kbd$3');
  str = str.replace(/(should look like: <)tt(>\d+&[amp;]*nbsp;[a-z]+<sup>\d<\/sup> *<\/)tt(>)/gi, '$1kbd$2kbd$3');
  str = str.replace(/(should look like: <)tt(>undefined&[amp;]*nbsp;[a-z]+ *<\/)tt(>)/gi, '$1kbd$2kbd$3');

// add closing center tag within table rows (up to 10 times)
var loopcount = 0;
while( str.search(/(\| *\<center\>((?!\<\/center\>).)*)(\|\|)/gi) >= 0 && loopcount <= 15 ) { //'
str = str.replace(/(\| *\<center\>((?!\<\/center\>).)*)(\|\|)/gi, '$1\<\/center\>$3'); //'
loopcount++;
}
  
//  str = str.replace(/(\| *\<center\>((?!\<\/center\>).)*)(\n)/gi, '$1\<\/center\>$3');  // too many false positives with </center> on a subsequent line

  //str = str.replace(/(\| *\<span style((?!\<\/span\>).)*)(\|\|)/gi, '$1\<\/span\>$3'); //too greedy, need to get just the next pipes
  str = str.replace(/\'\'\'(\[\[Image:Cscr-featured.svg\|left\|30px\|This star symbolizes the featured content on Wikipedia\.\]\])(\[\[Wikipedia:Featured pictures\|Featured picture\]\]\'\'\')/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *style\=\"[a-z\:\;\#\d]+\" *\| *\'\'\'[\d–\-]+)(\n)/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *bgcolor\=\"*[a-z\:\;\#\d]+\"* *\| *\'\'\'[\d–\-]+)(\n)/gi, '$1\'\'\'$2');
  str = str.replace(/(\| *bgcolor\=\"*[a-z\:\;\#\d]+\"* *\| *\'\'\'[\. \w\]\[\-–áàăâåäãāảạæćČçĐéèêếềễěëėęēệíìîïİįīịıĽńñóòôỗöõøōơờọœřšŞúùûüũūưứýỳ¡§:\!\?]+)(\n)/gi, '$1\'\'\'$2'); 
  str = str.replace(/(\| *style\=\"*[a-z\:\;\#\d\;]+\"* *\| *\'\'\'[\. \w\]\[\-–msng:\!\?]+)(\n)/gi, '$1\'\'\'$2'); 

//  str = str.replace(/(\| *bgcolor\=\"*[a-z\:\;\#\d]+\"* *\| *\'\'\'[ \p{L}\]\[\-–]+)(\n)/gi, '$1\'\'\'$2'); // \p{L} should match "any Unicode letter", but it's not working. 

  str = str.replace(/(All-Ireland Senior Camogie Championship [\d]+)\'\'\'/gi, '$1');

  str = str.replace(/\{\| width\=100\% style\=\"font-size\: 90\%\"(\n\'\'\'MATCH RULES\'\'\'\n\*\d0 minutes\n\*Replay if [a-z ]+\n\*Maximum of \d substitution[a-z ]+\n)\|\}/gi, '\<div style\=\"font-size: 90\%\"\>$1\<\/div\>');

  //Newsletter cleanup that happens after some of the above standard replacements
  str = str.replace(/(^\|<big>{{center\|\'\'In the Seattle area\?)(}})(\n)/gmi, '$1\'\'$2<\/big>$3');
  str = str.replace(/(^\|<big>{{center\|\'\'In the Seattle area\?)(}}<\/big>)(\n)/gmi, '$1\'\'$2$3');
  str = str.replace(/(^\|<big><center>\'\'In the Seattle area\?)(<\/center><\/big>\n)/gmi, '$1\'\'$2');
  str = str.replace(/(\*You are invited to the)\'\'( \'\'\'\[\[Wikipedia:Meetup\/Seattle)/gi, '$1$2');

  //Self-closed tags (not usually Linter errors, but close)
  str = str.replace(/\<\/*big *\/\>/gi, '\<\/big\>');
  str = str.replace(/\<\/*blockquote *\/\>/gi, '\<\/blockquote\>');
  str = str.replace(/\<\/*center *\/\>/gi, '\<\/center\>');
  str = str.replace(/\<\/*del *\/\>/gi, '\<\/del\>');
  str = str.replace(/\<\/*div *\/\>/gi, '\<\/div\>');
  str = str.replace(/\<\/*em *\/\>/gi, '\<\/em\>');
  str = str.replace(/\<\/*h1 *\/\>/gi, '\<\/h1\>');
  str = str.replace(/\<\/*h2 *\/\>/gi, '\<\/h2\>');
  str = str.replace(/\<\/*h3 *\/\>/gi, '\<\/h3\>');
  str = str.replace(/\<\/*h4 *\/\>/gi, '\<\/h4\>');
  str = str.replace(/\<\/*h5 *\/\>/gi, '\<\/h5\>');
  str = str.replace(/\<\/hr\s*>/gi, '\<hr\/\>');
  str = str.replace(/\<\/*i *\/\>/gi, '\<\/i\>');
  str = str.replace(/\<\/*p *\/\>/gi, '\<p\>');
  str = str.replace(/\<\/*s *\/\>/gi, '\<\/s\>');
  str = str.replace(/\<\/*small *\/\>/gi, '\<\/small\>');
  str = str.replace(/\<\/*strike *\/\>/gi, '\<\/strike\>');
  str = str.replace(/\<\/*sub *\/\>/gi, '\<\/sub\>');
  str = str.replace(/\<\/*sup *\/\>/gi, '\<\/sup\>');
  str = str.replace(/\<\/*td *\/\>/gi, '\<td\>\<\/td\>');
  str = str.replace(/\<\/*th *\/\>/gi, '\<th\>\<\/th\>');
  str = str.replace(/\<\/*tr *\/\>/gi, '\<tr\>\<\/tr\>');
  str = str.replace(/\<\/*u *\/\>/gi, '\<\/u\>');
  str = str.replace(/\<\/br *>/gi, '\<br\/\>');
  str = str.replace(/\<\/br\s*>/gi, '\<br\/\>');
  str = str.replace(/\<\/span *\/\>/gi, '\<\/span\>');


  //Fix line breaks so that I can see the syntax problems (no longer needed with voidTags setting in vector.js)
  //str = str.replace(/\<br\s*\>/gi, '\<br \/\>');
  //str = str.replace(/\<hr\s*\>/gi, '\<hr \/\>');

  //Fix my bad regexes that don't add # before colors
  str = str.replace(/(\<span style\=\"color:)([a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])/gi, '$1\#$2');

  //Individual signatures that result from partial font tag replacements above

  str = str.replace(/(\[\[User:LiveRail\|<span style="font\-variant:small\-caps"><span style="color:green;">Live<\/span><span style="color:Red;">Rail<\/span>)(\]\]&nbsp;\[\[User talk:LiveRail\|<font color="blue">&lt;&nbsp;\'\'\'Talk\'\'\'&nbsp;&gt;)(\]\])(<\/font>)(<\/span>)/gi,'$1$5$2$4$3');
  str = str.replace(/<font color="(blue">&lt;&nbsp;\'\'\'Talk\'\'\'&nbsp;&gt;<\/)font>/gi,'<span style="color:$1span>');
  str = str.replace(/<span style=color:white">/gi, '<span style="color:white">');
  str = str.replace(/(\[\[User:Dlohcierekim\|<span style="color:#009500;">  Dloh<\/span>\]\]\[\[User_talk:Dlohcierekim\|<span style="color:#950095;">cierekim)\'\'\'( <\/span>\]\])/gi,'$1$2');
  str = str.replace(/(\[\[User_talk:Dlohcierekim\|)  (\'\'\')(Cheers,<span style="color:#009500;"> :\) Dloh<\/span><span style="color:#950095;">cierekim)(\'\'\') (<\/span>\]\])/gi,' $2$1$3$5$2 ');
  str = str.replace(/(\'\'\'<span style="text\-shadow:#808080 0.2em 0.2em 0.2em">\[\[User:Mr RD\|<font size="3"><span style="color:blue;font\-family:Comic Sans MS">Mr <span style="color:green;">RD<\/span><\/span><\/font>\]\])(\'\'\')(<\/span>)/gi,'$1$3$2');


  return str;
}
 
function autoEdFunctions8() { //Activates individual modules when "auto ed" tab is clicked
    var $textbox = $( '#wpTextbox1' );  //This number 1 stays a 1. Do not increment it.
    var txt = $textbox.textSelection('getContents');
    txt = ReplaceDOI(txt);
    $textbox.textSelection('setContents', txt);
}
 
//</syntaxhighlight>