<blocksapp="Snap! 6, https://snap.berkeley.edu"version="1"><block-definitions="multiline %'text'"type="reporter"category="operators"><header></header><code></code><translations>pt:o texto multilinha _
</translations><inputs><inputtype="%mlt"></input></inputs><script><blocks="doReport"><blockvar="text"/></block></script></block-definition><block-definitions="substring of %'string' before %'marker'"type="reporter"category="operators"><commentx="0"y="0"w="175.33333333333334"collapsed="false">Reports the part of the first string up to the first instance of the second string inside it. If the second string isn't found, reports the entire first string.</comment><header></header><code></code><translations>pt:o texto de _ antes de _
</translations><inputs><inputtype="%txt"></input><inputtype="%txt"></input></inputs><script><blocks="doReport"><blocks="evaluate"><blocks="reportJSFunction"><list><l>string</l><l>marker</l></list><l>var world=this.parentThatIsA(IDE_Morph);
if (!("stringLibCaseIndependentComparison" in world)) {
 world["stringLibCaseIndependentComparison"] = true;
};
if (world["stringLibCaseIndependentComparison"]) {
 var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());
 if (index<0) {return string};
 return string.slice(0,index);
} else {
 var index=string.indexOf(marker);
 if (index<0) {return string};
 return string.slice(0,index);
}</l></block><list><blockvar="string"/><blockvar="marker"/></list></block></block></script></block-definition><block-definitions="substring of %'string' after %'marker'"type="reporter"category="operators"><commentx="0"y="0"w="203.33333333333334"collapsed="false">Reports the portion of the first input string starting after the first occurrence of the second string. If the second string isn't found in the first string, reports an empty string.</comment><header></header><code></code><translations>pt:o texto de _ depois de _
</translations><inputs><inputtype="%txt"></input><inputtype="%txt"></input></inputs><script><blocks="doReport"><blocks="evaluate"><blocks="reportJSFunction"><list><l>string</l><l>marker</l><l>markerlength</l></list><l>var world=this.parentThatIsA(IDE_Morph);
if (!("stringLibCaseIndependentComparison" in world)) {
 world["stringLibCaseIndependentComparison"] = true;
};
if (world["stringLibCaseIndependentComparison"]) {
 var index=string.toLocaleLowerCase().indexOf(marker.toLocaleLowerCase());
 if (index<0) {return ""};
 return string.slice(index+markerlength);
} else {
 var index=string.indexOf(marker);
 if (index<0) {return ""};
 return string.slice(index+markerlength);
}</l></block><list><blockvar="string"/><blockvar="marker"/><blocks="reportStringSize"><blockvar="marker"/></block></list></block></block></script></block-definition><block-definitions="position of %'small' in %'large'"type="reporter"category="operators"><commentx="0"y="0"w="294"collapsed="false">Reports the character position (starting from 1) of the beginning of the first input string inside the second input string.
If it's not found, reports 0.</comment><header></header><code></code><translations>pt:a posição de _ em _
</translations><inputs><inputtype="%s"></input><inputtype="%txt"></input></inputs><script><blocks="doReport"><blocks="evaluate"><blocks="reportJSFunction"><list><l>sub</l><l>sup</l></list><l>var world=this.parentThatIsA(IDE_Morph);
if (!("stringLibCaseIndependentComparison" in world)) {
 world["stringLibCaseIndependentComparison"] = true;
};
if (world["stringLibCaseIndependentComparison"]) {
 return 1+sup.toLocaleLowerCase().indexOf(sub.toLocaleLowerCase());
} else {
 return 1+sup.indexOf(sub);
}</l></block><list><blockvar="small"/><blockvar="large"/></list></block></block></script></block-definition><block-definitions="