title: What's Visual FoxPro's string lt(<)/gt(>)/lte(<=)/gte(>=) comparison rule?
body: <ul>
  <li><code>?"ABC"&gt;"A"</code> returns <code>.F.</code></li>
  <li><code>?"ABC"&gt;"B"</code> returns <code>.F.</code></li>
  <li><code>?"ABC"&gt;"a"</code> returns <code>.T.</code></li>
  </ul>
  
  <p>This seems not an ASCII comparison (as in other common programming languages).</p>
  
  <p>I'v searched MSDN, however <a href="https://msdn.microsoft.com/en-us/library/3b6st626(v=vs.80).aspx" rel="nofollow">Relational Operators</a> only explained comparison across numeric type or boolean. <a href="https://msdn.microsoft.com/en-us/library/9z694sba(v=vs.80).aspx" rel="nofollow">String and Value Comparison</a> didn't mention lt/gt/lte/gte operators.</p>
  
  <p>Why string comparison work like this? What's VFP's internal rules for string lt/gt comparison?</p>