Published on October 12, 2026 | By Development Team
Sunbelt PL/B Version 10.9 is here, with new language features, expanded REST and web capabilities, and improvements throughout the compiler, runtimes, and Sunbelt IDE. Highlights include a new REGEX object, SWAP and MATCHLIST instructions, and convenient string concatenation in expressions.
New REGEX Object: Pattern Matching and Text Processing
The new REGEX object adds compiled regular-expression support for searching, matching, counting, replacing, and splitting text. It offers methods including Compile, IsMatch, Match, MatchAll, Count, Replace, ReplaceAll, ReplaceEx, Search, Split, and Test.
These operations can help with input validation, extracting structured information, and processing text within PL/B applications. A new PLBREGEX.INC file provides REGEX filtering patterns.
New SWAP and MATCHLIST Instructions
SWAP exchanges the contents of compatible variables. It supports character, national character, and numeric variables, along with RECORD and VARLIST operands. Variables must meet compatibility requirements such as type, size, and relevant attributes.
A DIM 10
B DIM 10
MOVE "Hello",A
MOVE "World",B
SWAP A,B
MATCHLIST compares corresponding members of two RECORD or VARLIST operands in one instruction. It handles nested RECORDs and array elements, and sets the ZERO flag when all tested values match. If the lists have different lengths, comparison stops when the shorter list is exhausted or a mismatch is found.
MATCHLIST Rec1,Rec2
IF EQUAL
DISPLAY "Records Match"
ELSE
DISPLAY "Records Different"
ENDIF
Simpler String Expressions
PL/B 10.9 adds the + operator to concatenate strings within supported string expressions, including expressions used with IF, MOVE, APPEND, PACK, ERASE, and various file instructions.
A INIT "a"
B INIT "b"
AB INIT "ab"
IF ((A + B) == AB)
DISPLAY "Strings Match"
ENDIF
The APPEND instruction also gains a three-operand form that combines two sources and places the result in a separate destination.
REST Services with PLBREST
The new plbrest.exe runtime is designed for REST services run by the PL/B Web Server (plbwebsrv.exe). It uses PLBWEBSRV licensing for REST requests and has PLBWIN language capabilities, but can only be invoked through PLBWEBSRV.
Configuration requires Version 10.9 of both components, with plbrest.exe in the same folder as plbwebsrv.exe. The REST command-line setting must begin with plbrest without a path. Release notes include examples for standard REST and FastCGI configurations.
TLS Client Certificates and Email Enhancements
- PLB_SSL_CERTFILE and PLB_SSL_KEYFILE identify PEM client certificate and private key files for TLS client authentication.
- The HTTP flag $HTTP_FLAG_USE_CERT_KEY_FILE (0x8000) enables those settings for an HTTP operation; without the flag they are ignored.
- MAILSEND supports *CLIENTID={domain} to set the SMTP EHLO argument used to identify the sending client.
More HTMLCONTROL and Web Features
New HTMLCONTROL methods make it easier to work with HTML elements from PL/B, including GetChecked, GetClass, GetHTML, GetText, GetValue, and corresponding setter methods. The release also introduces LoadHTML and SetAsClient, plus RUNTIME.SetWebStartUrl.
For Linux/Unix PLBWEBSRV, LISTVIEW and DATATABLE now support LoadCSVFile and SaveCSVFile.
IDE, Compiler, and Debugging Improvements
- The compiler now provides program-label reference counts in PLBM reflection output for display in Sunbelt IDE. The new ZK option disables reference counting.
- The IDE adds better reference browsing, bookmark sorting, error bookmarks, breakpoint tracking, and Find in Files behavior.
- The PL/B AI Assistant tab can be promoted to an independent window; the IDE remembers its independent-window state.
- The Designer receives improvements to IDE integration, bookmarks, and breakpoint updates.
- The Profiler adds an OpTime (ms) column showing accumulated execution time per instruction opcode.
Runtime Fixes and Compatibility Updates
- Corrected an issue in which EXECUTE destroyed certain runtime objects, including PLBOBJECT, DATASET, XDATA, DATETIME, FTP, DATATABLE, JSONDATA, and AIOBJECT.
- PDF output has been updated to PDF version 1.7; readers must support version 1.7 or later.
- The POWER instruction now reports additional F19 errors for mathematical failures.
- Windows GUI fixes address ChooseFont behavior at higher display scaling and handling of Windows system-color changes.
Updated Sample Programs
The Sunbelt PL/B samples repository has been updated with Google Calendar samples, additional introductory examples, AI and Gemini examples, an OpenAI Responses API sample, DATASET examples, PowerShell scripts, and a Linux shared-library checking script.
Explore PL/B 10.9
From REGEX and structured-variable operations to REST processing, TLS support, and IDE improvements, Version 10.9 brings useful new capabilities to the PL/B development toolkit. Review the full release notes and updated documentation before deploying to production, especially where new runtime components or configuration keywords are involved.
