var input = "`ABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJABCDEFGHJ`";
var input2 = `
'sdsdsds'
'ssdsdsdsd''''
dskfkjlsdfsd
dfdsfdsfdsfds"dfsdf
'"""""fdsfds'
dsfdsfjhlfsdf
--dfsdf-sfds
sdfdsf
dfdsf Select1;
dfdsfds
ddfdf
""""dfdf"""""
'''dfdfd''''dfd''ddd''''ff fffgfg 'fgfg 'fgf''
`;
var REGEX_01 = /^((['])((?:\\.|[^'])+?)(')|(['])(.*)('))/;
var REGEX_02 = /^((['])((?:\\.+?|[^'])+?)(')|(?:['])(?:.*)('))/;
var REGEX_03 = /^((['])((\\.+|[^']))(['])|(['])(.*)([']))/;
var REGEX_ALL = /^((['])((?:\\.|[^'])+?)(')|(['])(.*)(')|(["])((?:\\.|[^"])+?)(")|([`])((?:\\.|[^`])+?)(`))/;
var REGEX_ALL_OPTIMIZED = /^((['])((\\.+|[^']))(['])|(['])(.*)(['])|(["])((?:\\.|[^"])+?)(")|([`])((?:\\.|[^`])+?)(`))/;
function run01(inString) {
return REGEX_01.exec(inString);
}
function run02(inString) {
return REGEX_02.exec(inString);
}
function run03(inString) {
return REGEX_03.exec(inString);
}
function runAllOrigin(inString) {
return REGEX_ALL.exec(inString);
}
function runAllOptimized(inString) {
return REGEX_ALL_OPTIMIZED.exec(inString);
}